查找ECS集群中所有EC2实例的公共IP地址

时间:2018-01-09 00:10:15

标签: amazon-web-services amazon-ec2 aws-cli aws-ecs

我尝试在ECS群集中查找所有EC2实例的公共IP地址。我可以通过命令看到EC2实例id:

aws ecs list-container-instances --cluster myCluster

但这不会显示IP地址。我搜索了ECS CLI文档,但是我找不到检索每个EC2实例的关联IP地址的命令。最简单的方法是什么?

感谢。

1 个答案:

答案 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