web-dev-qa-db-fra.com

Liste des adresses IP publiques des instances EC2

Je souhaite répertorier les adresses IP publiques de mes instances EC2 à l'aide de Bash, séparées par un délimiteur (espace ou nouvelle ligne).

J'ai essayé de diriger la sortie vers jq avec aws ec2 describe-instances | jq, mais ne semble pas isoler uniquement les adresses IP.

Cela peut-il être fait par aws seul, en spécifiant des arguments à jq, ou quelque chose d'autre entièrement?

37
Bas Peeters

Directement à partir du aws cli :

aws ec2 describe-instances \
  --query "Reservations[*].Instances[*].PublicIpAddress" \
  --output=text
83
faermanj
  • Filtrez les instances en cours d'exécution (vous pouvez supprimer cette partie si vous n'en avez pas besoin)
  • Requête pour chaque adresse IP publique et la balise de nom, gestion lorsque le nom n'est pas défini

    aws ec2 describe-instances --filter "Name = instance-state-name, Values ​​= running" --query "Reservations []. Instances []. [PublicIpAddress, Tags [? Key == ' Nom ']. Valeur | [0]] "- texte de sortie

5
Brad Giaccio

La commande ci-dessous répertorie les adresses IP de toutes vos instances EC2 en cours d'exécution

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

J'espère que cela répond à votre question.

5
A Null Pointer

Vous pouvez utiliser métadonnées d'instance pour pouvoir exécuter la commande suivante à partir de l'instance ec2:

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

et il vous donnera l'IP publique de l'instance. Si vous voulez l'IP privée, vous exécuterez

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

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

3
Sarat Chandra