Retrieving the IP address of an EC2 instance given an instance ID

对着背影说爱祢 提交于 2019-12-22 08:47:52

问题


Using the aws CLI, how can I retrieve the private IP address of an EC2 instance given its instanceID?

When I do:

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

I get other information, but not the private IP addresses such as:

{
    "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"
                    }
                ]
            }
        }
    ]
}

回答1:


Try describe-instances instead. Private IP Address isn't returned with describe-instance-status because that command describes system and instance status, primarily concerning itself with hardware/issues or scheduled events.

Per the "Output" section of the describe-instances documentation, part of the output of describe-instances is a string PrivateIpAddress.

Example usage:

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



回答2:


To get ALL private IP addresses:

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

or

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



回答3:


You can do this using the query option.

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

This will just return the private IPAddress and no other output information



来源:https://stackoverflow.com/questions/26243711/retrieving-the-ip-address-of-an-ec2-instance-given-an-instance-id

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!