将 Ansible 与 AWS 动态清单结合使用 (ec2.py)

Using Ansible with AWS dynamic inventory (ec2.py)

正在尝试使用静态+动态主机文件 ec2.py。

我试过以下指南:

重要的是要说运行下面的这个是有效的!

ansible -m ping tag_Ansible_Test

意思是 aws-cli、boto 和 ec2.py 安装正确并正常工作。

现在,在主机文件中定义以下组(如文档所述)时:

[tag_Ansible_Test]

[backend-test-group:children]
tag_Ansible_Test

ansible -m ping backend-test-group -vvvv

当尝试 运行 对组执行 ansible 命令时,出现以下错误:

可靠的 2.4.0.0
  配置文件 = /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(默认,2015 年 11 月 20 日,02:00:19)[GCC 4.8.5 20150623(Red Hat 4.8.5-4)]
使用 /etc/ansible/ansible.cfg 作为配置文件
设置库存插件
使用脚本插件解析 /etc/ansible/ec2.py 库存源
 [警告]:无法匹配提供的主机模式,忽略:后端测试组

 [警告]:没有主机匹配,无事可做

从 /usr/lib/python2.7/site-packages/ansible/plugins/callback/__init__.pyc 加载最小类型 stdout, v2.0 的回调插件

我在这里错过了什么?

通过如下设置文件夹结构解决了问题:

/etc/ansible/combined
- hosts (the original file static+dynamic hosts file)
- ec2.py
- ec2.ini

然后,在 ansible.cfg 中更改 inventory 设置:

...
inventory       = /etc/ansible/combined
...

感谢@KonstantinSuvorov 的帮助!