我正在尝试为 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和Ansible结合的时候遇到过类似的问题
简短的回答是,从 OS 或 pip3 安装 azure-cli 将提供 ansible 集合工作所需的更新版本。
在撰写本文时,有一个关于此冲突的活跃 github 问题https://github.com/ansible-collections/azure/issues/1138
答案A: Python 虚拟环境
我建议创建一个 Python 虚拟环境并将其用于你的 ansible 运行。这种方法将使 libs 和 bins 与操作系统分离,并允许您使当前的 azure-cli 安装保持最新,而无需降级它只是为了使用 ansible。
sudo apt-get 安装 python3-venv
mkdir ~/azure_venv
python3 -m venv ~/azure_venv
cd ~/azure_venv
源仓/激活
pip3 安装 ansible-core==2.14.4
ansible-galaxy 集合安装 azure.azcollection
pip3 安装 -r ~/.ansible/collections/ansible_collections/azure/azcollection/requirements-azure.txt
答案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 - 执行环境