AWS EC2 外部 inventory 脚本1
使用 AWC EC2时,维护一份 inventory 文件有时不是最好的方法.因为主机的数量有可能发生变动,或者主机是由外部的应用管理的,或者使用了 AWS autoscaling.这时,使用 EC2 external inventory 脚本是更好的选择.
脚本的使用方式有两种,最简单的是直接使用 Ansible 的命令行选项 -i ,指定脚本的路径(脚本要有可执行权限):
ansible -i ec2.py -u ubuntu us-east-1d -m ping第二种方式,把脚本拷贝为 /etc/ansible/hosts ,并赋予可执行权限.还需把 ec2.ini 文件拷贝到 /etc/ansible/ec2.ini,然后运行 ansible.
要成功的调用 API 访问 AWS,需要配置 Boto (Boto 是 AWS 的 Python 接口).可用的方法有多种,请参见: methods .
最简单的方法是定义两个环境变量:
export AWS_ACCESS_KEY_ID='AK123'
export AWS_SECRET_ACCESS_KEY='abc123'如何知道配置是否正确,执行脚本来测试:
cd plugins/inventory
./ec2.py --list你可以看到以 JSON 格式表示的覆盖所有 regions 的 inventory 信息.
因为每一个 region 需要自己的 API 调用,如果你仅使用了所有 regions 中的一个子集,可以编辑 ec2.ini ,使之仅显示你所感兴趣的那些 regions. 在配置文件 ec2.ini 中,包含了其他配置选项,包括缓存控制和目的地址变量.
学员评价