2017-08-09 69 views
1

我试图通过使用获得实例细节如下AWS命令如何从AWS EC2命令

aws ec2 describe-instances --filters "Name=instance.group-name, Values=index-cores" 

但是它给人以JSON格式输出IP地址。所以我试着在输出上使用grep

aws ec2 describe-instances --filters "Name=instance.group-name, Values=index-cores"|grep -w "PrivateIpAddress"|sort -u 

但是仍然导致结果不符合预期。

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

+0

尝试'jshon' http://kmkeen.com/jshon/ – hjpotter92

回答

2

尝试:

aws ec2 describe-instances --filters 'Name=tag:Name,Values=XXXXXX' --output text --query 'Reservations[].Instances[].[PrivateIpAddress,Tags[?Key==`Name`].Value[]]' 

返回IP和名称的值通过一台服务器,如果你需要的公共地址,你可以查询参数玩。

没有过滤器返回您的EC2的所有ip和名称。

2

如果你只是想在IP地址:

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

输出:

10.4.1.100 
10.7.12.212 
10.10.10.100 


如果你想在IP地址在单行逗号分隔:

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

输出:

10.4.1.100,10.7.12.212,10.10.10.100 


如果你想在IP地址在一行空格分隔:

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

输出:

10.4.1.100 10.7.12.212 10.10.10.100 
0

另一种方式来获得EC2实例的公网IP,而不使用CLI在下面。

从EC2实例运行:

wget ipinfo.io/ip 
cat ip