我曾经在Azure CLI Cloud Shell中执行Ansible Playbook。几年来一切都很好。最近一周我尝试执行simpleansible-playbbok并面临错误如下:
`fatal: \[localhost\]: FAILED! =\> {"changed": false, "msg": "Failed to get MSI token: 'MSIAuthentication' object has no attribute 'get_token'. Please check whether your machine enabled MSI or grant access to any subscription."}`
先前playbook被正确执行并且对象被创建。
攻略:
---
- name: Create Log Analytics Azure
hosts: localhost
connection: local
gather_facts: false
vars:
resource_group_name: sandbox
location: eastus
workspace_name: loganalyticsforwaf
tasks:
- name: create Log Analytics workspace
azure_rm_loganalyticsworkspace:
resource_group: "{{ resource_group_name }}"
name: "{{ workspace_name }}"
location: "{{ location }}"
sku: per_gb2018
我使用buildin Azure Cloud Shell,默认使用Ansible。我过去几年一直在使用它,一切都很好。我查了几个不同的账户-都是一样的。有些事改变了。。你知道如何找到问题的根源吗?
谢谢你!
我尝试使用Ansibla playbook创建Azure资源。
1条答案
按热度按时间d8tt03nd1#
编辑:在Github中打开了一个问题-https://github.com/ansible-collections/azure/issues/1183
测试并确认,后来的版本不知何故打破了MSI工作流程。用
azure_rm_keyvaultsecret_info
也测试了这个,得到了同样的错误。解决方法是恢复到
az.collection
版本1.13.0
。大于或等于1.14.0的版本将得到此错误。注意:还必须将python包与v1.13.0的需求文件对齐。也就是说,一旦你将azcollection恢复到v1.13.0,你将需要安装相关的python包。
用于恢复到Azure Collection v1.13.0的End-end-end指令。
ansible-galaxy collection install azure.azcollection:1.13.0
pip install -r </path-to-azcollection>/requirements-azure.txt
</path-to-azcollection>
是从步骤1的输出获得的 *