2015-10-15 60 views
-2

如何捕捉几个AWS EC2实例IPs并将它们放到一个脚本变量,如果它每次随机自动生成? 我试图用如何动态捕获AWS EC2实例IP?

echo "$(curl http://169.254.169.254/latest/meta-data/public-ipv4/) master" >> /etc/hosts 

做它,但它只是其中之一的IP。 也试图与 aws ec2 describe-instances ...但不知道如何将明确的IP与其他信息分开。任何建议与awk \ sed

+1

你能否澄清你的问题?你能提供更多关于你想要达到的信息吗?如果可能的话,为什么?例如,“抓住一些AWS EC2实例IP”是什么意思? –

回答

0

结束命令

echo "$(aws ec2 describe-instances --filters Name="tag-value",Values="nagios" |grep PrivateIpAddress | awk '{gsub(",","",$2); gsub("\"","",$2); print $2}' | head -n 1) master" >> /file 

从您的AWS实例赶上一个动态的IP地址与标签,并把它放到任何文件

2

使用AWS Command-Line Interface (CLI)--query参数:

aws ec2 describe-instances --query 'Reservations[*].Instances[*].{ID:InstanceId,Public:PublicIpAddress,Private:PrivateIpAddress}' --output text 
i-2da518a2 172.31.15.3 None 
i-6d261640 172.31.27.232 56.64.218.82 
i-b3aa3476 172.31.5.0 None 
i-6c57c951 172.31.20.243 56.79.129.118 
i-192b95c1 172.31.28.76 56.253.207.57 
i-af413c91 172.31.27.17 None 

你也可以为JSON,这是比较容易解析输出。

0

例如,如果你想获得的所有私有IP的其背后一个负载均衡器并将其传递给一个文件。

在/ usr/bin中/ AWS --output文本--query “预订[] .Instances [] .PrivateIpAddress” EC2描述,实例--instance-IDS aws --output text --query "LoadBalancerDescriptions[0].Instances[*].InstanceId" elb describe-load-balancers --load-balancer-name <loadbalancer name>> HOSTS.TXT

希望帮助....