与AWS连接时的Ansible动态库存

时间:2016-09-06 20:58:29

标签: amazon-web-services amazon-ec2 ansible ansible-2.x ansible-inventory

我已下载ec2.py和ec2.ini文件并将其放在

/etc/ansible/inventory

我已将ansible.cfg更改为

inventory      = /etc/ansible/inventory/ec2.py

我将环境变量设置为

export AWS_ACCESS_KEY_ID="XXXXXXXXXXXXXXX"
export AWS_SECRET_ACCESS_KEY="XXXXXXXXXXXXXXXXXXXXX"
export AWS_DEFAULT_REGION="us-east-1"
export EC2_INI_PATH="/etc/ansible/inventory/ec2.ini"

现在我运行ansible -m ping all 我正在

[WARNING]: provided hosts list is empty, only localhost is available

而不是ping我帐户中的所有实例

当我跑./ec2.py --list我得到

{
   "_meta": {
   "hostvars": {}
}
}

我在aws中的所有实例都在运行

1 个答案:

答案 0 :(得分:0)

您似乎没有使用正确的广告资源文件。

  • 检查ec2.py是否可执行(chmod + x)
  • 使用-v选项运行ansible以检查它确实是什么配置文件 使用

    ansible -v -m ping all

  • 检查您是否有ANSIBLE_INVENTORY或ANSIBLE_HOSTS环境 变量覆盖了预期的配置文件。您可以通过设置

    覆盖库存定义

    export ANSIBLE_INVENTORY=/etc/ansible/inventory/ec2.py

提醒配置文件按以下顺序处理

  • ANSIBLE_CONFIG(环境变量)
  • ansible.cfg(在当前目录中)
  • .ansible.cfg(在主目录中)
  • /etc/ansible/ansible.cfg

在1.5之前,订单是:

  • ansible.cfg(在当前目录中)
  • ANSIBLE_CONFIG(环境变量)
  • .ansible.cfg(在主目录中)
  • /etc/ansible/ansible.cfg