0

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

到目前为止我做了什么:

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

  2. 我将 python 插件(原始的、未编辑的插件)及其 yaml 配置文件放在 /etc/ansible/inventory_plugins 中。配置文件如下所示:

plugin: azure_rm

include_vm_resource_groups:

- vm_1197_rg

auth_source: auto
  1. 使用以下命令测试功能: 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模块位置 = /usr/lib/python2.7/site-packages/ansible 可执行位置 = /bin/ansible python 版本 = 2.7.5(默认,2019 年 4 月 9 日,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() 方法 [警告]: Unable to parse /etc/ansible/inventory_plugins/myazure_rm.yml 作为库存源

[警告]:没有解析库存,只有隐式本地主机可用

[警告]:提供的主机列表为空,只有 localhost 可用。请注意,隐式本地主机不匹配“全部”

4

2 回答 2

2

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

它必须以以下任一结尾:

  • 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'
于 2021-04-16T12:08:26.230 回答
0

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

于 2019-06-25T10:08:03.497 回答