我正在尝试为Ansible设置动态清单以与Azure一起使用,但是由于Ansible无法解析我的Yaml文件,我收到了一些消息。
我到目前为止所做的:
创建了Azure服务主体并将凭据添加到/home/user/.azure/credentials(我知道他们建议将它们放置在 /home/.azure/credentials,我尝试过,但似乎我的 Ansible在/ home / user目录中寻找它们。
我将python插件(原始的未经编辑的插件)及其yaml配置文件都放置在/ etc / ansible / inventory_plugins中。配置 文件看起来像这样:
plugin: azure_rm
include_vm_resource_groups:
- vm_1197_rg
auth_source: auto
- 使用以下命令测试功能:ansible all -m ping -i ./myazure_rm.yml
输出:
ansible 2.8.1配置文件= /etc/ansible/ansible.cfg已配置 模块搜索路径= [u'/ root / .ansible / plugins / modules', u'/ usr / share / ansible / plugins / modules'] ansible python module 位置= /usr/lib/python2.7/site-packages/ansible可执行文件 位置= / bin / ansible python版本= 2.7.5(默认,4月9日 2019,14:30:50)[GCC 4.8.5 20150623(Red Hat 4.8.5-36)]使用 /etc/ansible/ansible.cfg作为配置文件由于库存而跳过 源不存在或当前用户不可读azure_rm 拒绝解析/etc/ansible/inventory_plugins/myazure_rm.yml 没有通过它的verify_file()方法[警告]:无法解析 /etc/ansible/inventory_plugins/myazure_rm.yml作为库存来源
[警告]:没有解析清单,只有隐式本地主机被解析 可用
[警告]:提供的主机列表为空,只有localhost可用。 请注意,隐式本地主机与“ all”不匹配
答案 0 :(得分:0)
似乎我在运行命令时使用了错误的扩展名。我使用的是.yml而不是使用.yaml,就像文件实际被调用一样。
答案 1 :(得分:0)
'使用 azure_rm 清单插件时,清单文件的 NAME 实际上对解析很重要。
它必须以以下任一结尾:
例如以下任何文件名都是有效的:
如果文件不以 azure_rm.yml 结尾,您将收到如下一般错误消息:
[WARNING]: * Failed to parse $FILENAME with auto plugin: inventory config '$FILENAME ' could not be verified by plugin 'azure_rm'