在给定实例ID的情况下检索EC2实例的IP地址

时间:2014-10-07 19:29:15

标签: amazon-web-services aws-cli

使用aws CLI,如何在给定其instanceID的情况下检索EC2实例的私有IP地址

当我这样做时:

aws ec2 describe-instance-status --instance-ids <instance_ID>

我得到其他信息,但不是私有IP地址,例如:

{
    "InstanceStatuses": [
        {
            "InstanceId": "XXXXX", 
            "InstanceState": {
                "Code": 16, 
                "Name": "running"
            }, 
            "AvailabilityZone": "us-east-1a", 
            "SystemStatus": {
                "Status": "ok", 
                "Details": [
                    {
                        "Status": "passed", 
                        "Name": "reachability"
                    }
                ]
            }, 
            "InstanceStatus": {
                "Status": "ok", 
                "Details": [
                    {
                        "Status": "passed", 
                        "Name": "reachability"
                    }
                ]
            }
        }
    ]
}

3 个答案:

答案 0 :(得分:6)

请尝试使用describe-instances。私有IP地址不会随describe-instance-status一起返回,因为该命令描述了系统和实例状态,主要与硬件/问题或预定事件有关。

根据"Output" section of the describe-instances documentation,describe-instances输出的一部分是字符串PrivateIpAddress

使用示例:

aws ec2 describe-instances --instance-ids <instance_ID>

答案 1 :(得分:4)

获取所有私有IP地址:

aws ec2 describe-instances --instance-ids ${INSTANCE_ID} |\
jq -r '.Reservations[].Instances[].NetworkInterfaces[].PrivateIpAddress'

aws ec2 describe-instances --instance-ids ${INSTANCE_ID} |\
jq -r ".Reservations[]" | grep PrivateIpAddress |\
egrep -o "([0-9]{1,3}\.){3}[0-9]{1,3}" | sort -u

答案 2 :(得分:0)

您可以使用查询选项执行此操作。

aws ec2 describe-instances --instance-ids ${INSTANCE_ID} --query Reservations[].Instances[].NetworkInterfaces[].PrivateIpAddress

这只会返回私有IPAddress,而不会返回其他输出信息