首页 > 解决方案 > awsli 查询 ec2 以列出 IP,然后更新 ansible 主机文件中的值

问题描述

我们在 AWS 中有动态变化的环境,ASG 中大部分 EC2 的日常部分都在关闭(lambda),并且它们在第二天使用不同的 IP 启动(lambda)。想每天获取新的 IP 并使用适当的 IP 地址更新我的本地 ansible 主机文件(主机名没有改变)。

第一部分很容易使用 aws-cli 和命令:

aws ec2 describe-instances --query 'Reservations[].Instances[].[PrivateIpAddress,Tags[?Key==`Name`]| [0].Value]' --output text > text.txt

第二部分不是 :) 想用我的 text.txt 文件中的新值更新我的 ansible hosts 文件。

我的 ansible hosts 文件如下所示:

servername1 ansible_host=IP
servername2 ansible_host=IP
servername3 ansible_host=IP
...
servernameN ansible_host=IP

你能帮我写吗我假设python脚本女巫会读取text.txt并更新新的IP地址,如果有匹配(例如,来自text.txt的servername1 =主机文件中的相同条目到propper ansible_host=IP?

标签: pythonamazon-web-servicesamazon-ec2ansible

解决方案


推荐阅读