Amazon web services 如何从aws ec2命令获取IP地址

Amazon web services 如何从aws ec2命令获取IP地址,amazon-web-services,amazon-ec2,aws-cli,Amazon Web Services,Amazon Ec2,Aws Cli,我已尝试使用以下aws命令获取实例详细信息 aws ec2 describe-instances --filters "Name=instance.group-name, Values=index-cores" 但是,它以json格式提供输出。所以我试着在输出上跟踪grep aws ec2 describe-instances --filters "Name=instance.group-name, Values=index-cores"|grep -w "PrivateIpAddress"|

我已尝试使用以下aws命令获取实例详细信息

aws ec2 describe-instances --filters "Name=instance.group-name, Values=index-cores"
但是,它以json格式提供输出。所以我试着在输出上跟踪grep

aws ec2 describe-instances --filters "Name=instance.group-name, Values=index-cores"|grep -w "PrivateIpAddress"|sort -u
但结果仍然不如预期

任何人都可以建议如何为每个IP获得单线输出。

尝试:

aws ec2 describe-instances --filters 'Name=tag:Name,Values=XXXXXX' --output text --query 'Reservations[].Instances[].[PrivateIpAddress,Tags[?Key==`Name`].Value[]]'
返回传入值的服务器的IP和名称,如果需要公共地址,可以使用查询参数


不使用筛选器返回EC2的所有ip和名称。

如果您只需要ip:

aws ec2 describe-instances --filters <your-filter>
    --query 'Reservations[*].Instances[*].[PrivateIpAddress]' --output text

如果希望IP在单行中以逗号分隔:

aws ec2 describe-instances --filters <your-filter>
    --query 'Reservations[*].Instances[*].[PrivateIpAddress]' --output text | paste -sd,
aws ec2 describe-instances --filters <your-filter>
    --query 'Reservations[*].Instances[*].[PrivateIpAddress]' --output text | paste -sd' '

如果要在单行空间中分隔IP:

aws ec2 describe-instances --filters <your-filter>
    --query 'Reservations[*].Instances[*].[PrivateIpAddress]' --output text | paste -sd,
aws ec2 describe-instances --filters <your-filter>
    --query 'Reservations[*].Instances[*].[PrivateIpAddress]' --output text | paste -sd' '

下面是不使用CLI获取ec2实例的公共IP的另一种方法

从ec2实例运行:

wget ipinfo.io/ip
cat ip

这似乎很有效:

aws ec2描述实例\
--欧盟西部1区\
--实例ID\
--查询保留[]。实例[]。私有IP地址\
--过滤器“Name=tag:Name,Values=instance\u Name”\
--输出=文本

我会仔细检查,因为我看到上面的示例在结果中返回
none

10.1.12.123
None
尝试
jshon
10.1.12.123
None