如何修复“.azure_rm 插件:批处理请求失败,状态代码为 403”错误

问题描述 投票:0回答:1

我正在尝试为 Azure 配置动态清单。 我已经使用我的订阅 ID、租户 ID、客户端 ID 和我的客户端密码创建了一个 Azure 凭据。 我在清单的源配置中使用此 ARM 凭据。 我正在使用 ansible [核心 2.14.4] 我也在使用最新版本的 azcollection。

尝试同步清单的结果如下:[警告]:* 无法使用自动插件解析 /runner/inventory/azure_rm.yml:批处理请求失败,状态码为 403,url /subscriptions/dev-null__ /providers/Microsoft.Compute/virtualMachines__ 关于如何排除故障或其他提示的任何建议都将非常有帮助

我尝试安装最新版本的 Ansible 和 Azure CLI。 我还仔细检查了 python3

的版本
azure-devops ansible ansible-inventory
1个回答
0
投票

长话短说:

执行环境

我个人在Azure和Ansible结合的时候遇到过类似的问题

简短的回答是,从 OS 或 pip3 安装 azure-cli 将提供 ansible 集合工作所需的更新版本。

在撰写本文时,有一个关于此冲突的活跃 github 问题https://github.com/ansible-collections/azure/issues/1138

答案A: Python 虚拟环境

我建议创建一个 Python 虚拟环境并将其用于你的 ansible 运行。这种方法将使 libs 和 bins 与操作系统分离,并允许您使当前的 azure-cli 安装保持最新,而无需降级它只是为了使用 ansible。

  1. 使用操作系统包管理器(即 Ubuntu)安装 python3-venv

sudo apt-get 安装 python3-venv

  1. 为 venv 创建目录

mkdir ~/azure_venv

  1. 在该目录中创建虚拟环境

python3 -m venv ~/azure_venv

  1. 激活虚拟环境

cd ~/azure_venv

源仓/激活

  1. 在虚拟环境中安装ansible-core

pip3 安装 ansible-core==2.14.4

  1. 下载 Azure 系列

ansible-galaxy 集合安装 azure.azcollection

  1. 在虚拟环境中安装要求(这还将在需要和兼容的版本中安装 azure-cli-core)

pip3 安装 -r ~/.ansible/collections/ansible_collections/azure/azcollection/requirements-azure.txt

  1. 在虚拟环境处于活动状态时运行 Ansible 命令

答案B: Ansible 执行环境

还有一种更复杂的方法来管理图书馆及其要求。集合在所需的 python 库方面可能会相互冲突,因此 Ansible 引入了基于容器而不是 Python 虚拟环境的“执行环境”。

使用它们最方便的方法是使用推荐与 kubernetes 一起使用的 AWX,所以我不打算在这里推荐它们。

如果您对它们感兴趣,可以在这里阅读它们:

https://github.com/ansible/awx-AWX

https://github.com/ansible/awx-operator - 部署 AWX

https://docs.ansible.com/automation-controller/latest/html/userguide/execution_environments.html - 执行环境

https://ansible-runner.readthedocs.io/en/stable/ - 使用执行环境

© www.soinside.com 2019 - 2024. All rights reserved.