ansible 動態庫存無法正常工作
這是用於與 AWS 一起使用的動態清單
RHEL 7.3 python2-boto-2.45.0-3.el7.noarch
ANSIBLE 版本
ansible 2.3.1.0 config file = /projects/robomation/ansible.cfg configured module search path = Default w/o overrides python version = 2.7.5 (default, Aug 2 2016, 04:20:16) [GCC 4.8.5 20150623 (Red Hat 4.8.5-4)]
我有幾個資源正在執行,當我執行時
ec2.py --list { "_meta": { "hostvars": {} } }
此外,當我嘗試執行針對具有某些標籤的主機的 ansible 劇本時,我得到了這個
[WARNING]: Found both group and host with same name: localhost ... ... ... skipping: no hosts matched
我在設置動態庫存以正常工作時遇到問題。我有我的 ec2.ini 和 ec2.py 文件,並且 ec2.py 設置為可執行,我相信我的設置正確。此外,命令不返回錯誤,只是它在正文中不返回任何內容。
[root@robomation robomation]# env | grep ANSIBLE ANSIBLE_HOSTS=/projects/robomation/inventory/ec2.py [root@robomation robomation]# env | grep EC2_INI EC2_INI_PATH=/projects/robomation/inventory/ec2.ini [root@robomation robomation]# env | grep AWS AWS_REGION=us-west-2 [root@robomation robomation]# inventory/ec2.py --list { "_meta": { "hostvars": {} } } [root@robomation robomation]# ansible --version ansible 2.3.1.0 config file = /projects/robomation/ansible.cfg configured module search path = Default w/o overrides python version = 2.7.5 (default, Aug 2 2016, 04:20:16) [GCC 4.8.5 20150623 (Red Hat 4.8.5-4)]
我該怎麼做才能對動態庫存進行故障排除?
更新:
pip freeze
boto3==1.4.4 botocore==1.5.82
rpm -qa | grep boto
python2-boto-2.45.0-3.el7.noarch
ec2.py
動態清單用於對boto
AWS 進行 API 呼叫。因此,您可能想
boto
通過執行以下命令檢查是否可以連接到 AWS:python >>> import boto >>> s3 = boto.connect_s3()
如果你得到這樣的東西:
boto.exception.NoAuthHandlerFound: No handler was ready to authenticate. 1 handlers were checked. ['HmacAuthV1Handler'] Check your credentials
您的憑據不正確。有幾種方法可以配置boto。但出於調試目的,您可以
AWS_ACCESS_KEY_ID
通過命令行簡單地設置和“AWS_SECRET_ACCESS_KEY”,如下所示:export AWS_ACCESS_KEY_ID='AK123' export AWS_SECRET_ACCESS_KEY='abc123'
使用
IAM roles
時應注意:IAM 角色在使用 boto 2.5.0 或更高版本時受 plugins/inventory/ec2.py 支持。
在分配了 IAM 角色且角色策略允許 ec2:Describe* 操作的 EC2 實例上執行時,ec2.py –list 無需指定 aws_access_key_id 或 aws_secret_access_key 即可工作。
如果 ec2.ini 定義 route53 = True 或 rds = True,則需要在角色策略中允許其他操作。github問題