我有问题让它使用ec2.py脚本来动态库存.
在CentOS 7上安装了ansible:
yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
yum --enablerepo=epel install ansible
配置简单的hosts文件和ssl密钥访问.运行ansible:
ansible all -m ping
获得预期的输出. Ansible正在工作.
安装的aws-cli:
wget -q https://s3.amazonaws.com/aws-cli/awscli-bundle.zip
unzip awscli-bundle.zip
./awscli-bundle/install -i /opt/aws -b /usr/bin/aws
在〜/ .aws中配置凭证文件.运行aws:
aws ec2 describe-instances
获得预期的输出. Aws-cli正在运作.
已安装boto.
yum --enablerepo=epel install python2-boto
从官方文档(http://docs.ansible.com/ansible/latest/intro_dynamic_inventory.html#example-aws-ec2-external-inventory-script)中下载链接中的ec2.py和ec2.ini.运行它我收到以下错误:
[root@vm09 ansible]# ./ec2.py --list
Traceback (most recent call last):
File "./ec2.py", line 1642, in <module>
Ec2Inventory()
File "./ec2.py", line 193, in __init__
self.do_api_calls_update_cache()
File "./ec2.py", line 525, in do_api_calls_update_cache
self.get_instances_by_region(region)
File "./ec2.py", line 615, in get_instances_by_region
self.add_instance(instance, region)
File "./ec2.py", line 934, in add_instance
if self.group_by_platform:
AttributeError: 'Ec2Inventory' object has no attribute 'group_by_platform'
尝试从git和pip安装ansible,与boto相同.总是得到同样的错误.
我在这里缺少什么?
解决方法:
好的,所以如果你看一下引入group_by_platform功能的PR:
https://github.com/ansible/ansible/pull/27848/files
您可以看到代码通过分组选项的可能属性.这些属性在脚本中更高可用:
https://github.com/ansible/ansible/blob/devel/contrib/inventory/ec2.py#L435-L462
set_tr循环迭代的列表中缺少group_by_platform属性.添加它,它会工作.
这实际上是现在修复的(两小时前):
https://github.com/ansible/ansible/commit/223f94ec563eb0f5fb95465bf440ffddd7828f8b
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。