【问题标题】:How to catch AWS EC2 Instance IPs dynamically?如何动态捕获 AWS EC2 实例 IP?
【发布时间】:2015-10-16 23:22:11
【问题描述】:

如果每次随机自动生成,如何捕获少量AWS EC2 Instances IP 并将它们放入脚本变量中? 我试图用

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

但这只是其中之一的 IP。 也在尝试 aws ec2 describe-instances ... 但不知道如何将清除 IP 与其他信息分开。对awk\sed有什么建议吗?

【问题讨论】:

  • 您能澄清一下您的问题吗?你能否提供更多关于你想要达到的目标的信息,如果可能的话,为什么?比如“抓几个 AWS EC2 Instances IPs”是什么意思?

标签: amazon-web-services awk sed amazon-ec2


【解决方案1】:

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,更容易解析。

【讨论】:

    【解决方案2】:

    结束命令是

    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 地址并将其放入任何文件中

    【讨论】:

      【解决方案3】:

      例如,如果您想获取负载均衡器后面的所有私有 IP 并将其传递到文件。

      /usr/bin/aws --output text --query "Reservations[].Instances[].PrivateIpAddress" ec2 describe-instances --instance-ids aws --output text --query "LoadBalancerDescriptions[0].Instances[*].InstanceId" elb describe-load-balancers --load-balancer-name <loadbalancer name> > hosts.txt

      希望对你有帮助....

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2022-10-20
        • 1970-01-01
        • 2018-11-15
        • 1970-01-01
        • 2021-04-19
        • 2016-09-18
        • 1970-01-01
        相关资源
        最近更新 更多