Ram*_*mar 19 amazon-ec2 autoscaling
如何获取属于 AutoScaling 组的所有实例的私有 IP 地址。我正在尝试对属于自动缩放组的所有实例进行一些操作。
Ram*_*mar 21
我写了一个像下面这样的小脚本来获取 IP 列表:
#!/bin/bash
for i in `aws autoscaling describe-auto-scaling-groups --auto-scaling-group-name ASGName | grep -i instanceid | awk '{ 打印 $2}' | 剪切 -d',' -f1| sed -e 's/"//g'`
做
aws ec2 描述实例 --instance-ids $i | grep -i PrivateIpAddress | awk '{ 打印 $2 }' | 头-1 | 剪切 -d"," -f1
完毕;
ALe*_*hha 17
作为替代,我的版本没有任何 jq/awk/sed/cut
$ aws autoscaling describe-auto-scaling-instances --region us-east-1 --output text \
--query "AutoScalingInstances[?AutoScalingGroupName=='ASG-GROUP-NAME'].InstanceId" \
| xargs -n1 aws ec2 describe-instances --instance-ids $ID --region us-east-1 \
--query "Reservations[].Instances[].PrivateIpAddress" --output text
10.228.43.71
10.230.178.160
10.228.15.171
10.233.160.163
10.228.18.123
10.225.222.195
10.237.149.97
10.136.163.109
10.152.35.71
10.233.157.230
Run Code Online (Sandbox Code Playgroud)
更优化的版本
# aws ec2 describe-instances --region us-east-1 --instance-ids \
$(aws autoscaling describe-auto-scaling-instances --region us-east-1 --output text \
--query "AutoScalingInstances[?AutoScalingGroupName=='ASG_NAME'].InstanceId") \
--query "Reservations[].Instances[].PrivateIpAddress"
[
"10.230.178.160",
"10.152.35.71",
"10.233.157.230",
"10.237.149.97",
"10.228.15.171",
"10.136.163.109",
"10.225.222.195",
"10.233.160.163",
"10.228.43.71",
"10.228.18.123"
]
Run Code Online (Sandbox Code Playgroud)
如果您只需要输出中的普通列表,您可以添加另一个管道
| jq -r '.[]'
查看 AWS API 的详细文档。例如,aws-cli 工具aws autoscaling describe-auto-scaling-instances和aws ec2 describe-instances。
| 归档时间: |
|
| 查看次数: |
22006 次 |
| 最近记录: |