为什么Ansible无法解析我的Azure动态清单配置文件?

时间:2019-06-25 09:08:39

标签: ansible ansible-inventory azure-rm

我正在尝试为Ansible设置动态清单以与Azure一起使用,但是由于Ansible无法解析我的Yaml文件,我收到了一些消息。

我到目前为止所做的:

  
      
  1. 创建了Azure服务主体并将凭据添加到/home/user/.azure/credentials(我知道他们建议将它们放置在   /home/.azure/credentials,我尝试过,但似乎我的   Ansible在/ home / user目录中寻找它们。

  2.   
  3. 我将python插件(原始的未经编辑的插件)及其yaml配置文件都放置在/ etc / ansible / inventory_plugins中。配置   文件看起来像这样:

  4.   
plugin: azure_rm

include_vm_resource_groups:

- vm_1197_rg

auth_source: auto
  
      
  1. 使用以下命令测试功能:ansible all -m ping -i ./myazure_rm.yml
  2.   

输出:

  

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”不匹配

2 个答案:

答案 0 :(得分:0)

似乎我在运行命令时使用了错误的扩展名。我使用的是.yml而不是使用.yaml,就像文件实际被调用一样。

答案 1 :(得分:0)

'使用 azure_rm 清单插件时,清单文件的 NAME 实际上对解析很重要。

它必须以以下任一结尾:

  • azure_rm.yml
  • azure_rm.yaml

例如以下任何文件名都是有效的:

  • inventory_azure_rm.yml
  • inventoryazure_rm.yml
  • why_is_this_a_good_idea_azure_rm.yml

如果文件不以 azure_rm.yml 结尾,您将收到如下一般错误消息:

[WARNING]:  * Failed to parse $FILENAME with auto plugin: inventory config '$FILENAME ' could not be verified by plugin 'azure_rm'