wake-up-neo.com

Listet die öffentlichen IP-Adressen von EC2-Instanzen auf

Ich möchte die öffentlichen IP-Adressen meiner EC2-Instanzen mit Bash auflisten, getrennt durch ein Trennzeichen (Leerzeichen oder eine neue Zeile).

Ich habe versucht, die Ausgabe mit aws ec2 describe-instances | jq An jq zu leiten, kann aber nicht nur die IP-Adressen zu isolieren.

Kann dies allein durch aws und Angabe von Argumenten für jq oder durch etwas ganz anderes geschehen?

37
Bas Peeters

Direkt aus dem aws cli :

aws ec2 describe-instances \
  --query "Reservations[*].Instances[*].PublicIpAddress" \
  --output=text
83
faermanj
  • Filter für laufende Instanzen (Sie können diesen Teil löschen, wenn Sie ihn nicht benötigen)
  • Fragen Sie nach jeder öffentlichen IP-Adresse und dem Namenstag ab, wenn der Name nicht festgelegt ist

    aws ec2 describe-instance --filter "Name = Name des Instanzstatus, Werte = Wird ausgeführt" --query "Reservations []. Instances []. [PublicIpAddress, Tags [? Key == ' Name ']. Wert | [0]] "- Ausgabetext

5
Brad Giaccio

Mit dem folgenden Befehl werden die IP-Adressen aller ausgeführten EC2-Instanzen aufgelistet

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

Hoffe, dass Ihre Frage beantwortet.

5
A Null Pointer

Sie können Instanzmetadaten verwenden, um den folgenden Befehl von der ec2-Instanz auszuführen:

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

und es wird Ihnen die öffentliche IP der Instanz geben. Wenn Sie die private IP möchten, werden Sie ausgeführt

curl http://169.254.169.254/latest/meta-data/local-ipv4
4
aws ec2 describe-instances --query "Reservations[].Instances[][PublicIpAddress]"

Siehe: http://docs.aws.Amazon.com/cli/latest/userguide/controlling-output.html

3
Sarat Chandra