Openbare IP-adressen van EC2-instanties weergeven

Ik wil de openbare IP-adressen van mijn EC2-instanties weergeven met Bash, gescheiden door een scheidingsteken (spatie of een nieuwe regel).

Ik heb geprobeerd de uitvoer naar jqte sturen met aws ec2 describe-instances | jq, maar kan blijkbaar niet alleen de IP-adressen isoleren.

Kan dit worden gedaan door alleen aws, door argumenten op te geven voor jq, of iets anders?


Antwoord 1, autoriteit 100%

Direct vanaf de aws cli:

aws ec2 describe-instances \
  --query "Reservations[*].Instances[*].PublicIpAddress" \
  --output=text

Antwoord 2, autoriteit 15%

  • Filter op actieve instanties (je kunt dat deel laten vallen als je het niet nodig hebt)
  • Query voor elk PublicIPaddress en de naamtag, afhandeling wanneer de naam niet is ingesteld
aws ec2 describe-instances \
  --filter "Name=instance-state-name,Values=running" \
  --query "Reservations[*].Instances[*].[PublicIpAddress, Tags[?Key=='Name'].Value|[0]]" \
  --output text

Antwoord 3, autoriteit 6%

Het onderstaande commando geeft de IP-adressen weer van al uw actieve EC2-instanties

aws ec2 describe-instances | grep PublicIpAddress | grep -o -P "\d+\.\d+\.\d+\.\d+" | grep -v '^10\.'

Ik hoop dat dit je vraag beantwoordt…

Maar dit werkt zonder alle fouten over toegang:

wget -qO- http://instance-data/latest/meta-data/public-ipv4/|grep .

Antwoord 4, autoriteit 4%

U kunt een instantie gebruiken metadatazodat u de volgende opdracht kunt uitvoeren vanaf de ec2-instantie:

curl http://169.254.169.254/latest/meta-data/public-ipv4

en het geeft je het openbare IP-adres van de instantie. Als je het privé-IP wilt, voer je

curl http://169.254.169.254/latest/meta-data/local-ipv4

Antwoord 5, autoriteit 3%

aws ec2 describe-instances --query "Reservations[].Instances[][PublicIpAddress]"

Zie:
http://docs.aws.amazon.com/cli/ nieuwste/userguide/controlling-output.html

Other episodes