0

我已经下载了 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 所有我得到

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

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

当我运行 ./ec2.py --list 我得到

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

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

4

1 回答 1

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
于 2016-09-07T07:19:03.497 回答