簡體   English   中英

Ansible ec2.py無法正常工作

[英]Ansible ec2.py not working

我有問題讓它使用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

從git中提取最新內容它應該可以正常工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM