我尝试在ECS群集中查找所有EC2实例的公共IP地址。我可以通过命令看到EC2实例id:
aws ecs list-container-instances --cluster myCluster
但这不会显示IP地址。我搜索了ECS CLI文档,但是我找不到检索每个EC2实例的关联IP地址的命令。最简单的方法是什么?
感谢。
答案 0 :(得分:0)
这是我得到的,不是很漂亮-应该使用python和boto2。它使用通过管道传送到jq的aws cli和我正在学习的更多bash。
#!/bin/bash
c_instances=`aws ecs list-container-instances --cluster your-cluster --region=eu-west-1 | jq '.containerInstanceArns | join (" ")' | tr -d '"'`
i_ids=`aws ecs describe-container-instances --cluster your-cluster --region=eu-west-1 --container-instances $c_instances | jq '.containerInstances | .[] | .ec2InstanceId'|tr '\n' ' ' | tr -d '"'`
ips=`aws ec2 --region=eu-west-1 describe-instances --instance-ids $i_ids |jq '.Reservations | .[] | .Instances | .[] .NetworkInterfaces | .[] .PrivateIpAddresses| .[] .Association| .PublicIp '`
echo $ips