与 AWS 连接时的 Ansible 动态清单
Ansible dynamic inventory when connecting with AWS
我已经下载了 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 中的所有实例都是 运行ning
您似乎没有使用正确的清单文件。
- 检查ec2.py是否可执行(chmod +x)
运行 ansible 使用 -v 选项来检查它到底是什么配置文件
使用
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
我已经下载了 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 中的所有实例都是 运行ning
您似乎没有使用正确的清单文件。
- 检查ec2.py是否可执行(chmod +x)
运行 ansible 使用 -v 选项来检查它到底是什么配置文件 使用
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