71 votes

Recherche d'une instance ec2 par son nom à partir de l'outil de ligne de commande aws

J'ai une instance nommée dev-server-03 . Maintenant, comment puis-je rechercher tous les dev-server-* instances à partir de la ligne de commande ?

J'utilise l'outil aws cli.

111voto

codewise Points 436

En supposant que vous utilisiez la convention consistant à placer le nom de l'instance dans une balise avec la clé "Name" (c'est ce que fait la console AWS lorsque vous saisissez un nom), vous pouvez alors utiliser la balise --filters pour lister ces instances avec aws-cli :

aws ec2 describe-instances --filters 'Name=tag:Name,Values=dev-server-*'

Si vous ne voulez que les identifiants de ces instances, vous pouvez utiliser :

aws ec2 describe-instances --filters 'Name=tag:Name,Values=dev-server-*' \
  --output text --query 'Reservations[*].Instances[*].InstanceId'

Nota: --query peut nécessiter une version récente d'aws-cli, mais cela vaut la peine de l'obtenir.

17voto

Siva Prasad Koka Points 111

Vous pouvez également filtrer avec le nom, l'identifiant de l'instance et l'adresse IP privée comme indiqué ci-dessous,

aws ec2 describe-instances --filters "Name=tag:Name,Values=*myinstance*" --output json --query 'Reservations[*].Instances[*].[PrivateIpAddress,InstanceId,Tags[?Key==`Name`].Value]' --region us-east-1

2voto

enharmonic Points 166

Si vous utilisez jq Pour ce faire, vous pouvez utiliser

aws ec2 describe-instances | 
jq -r '.Reservations[].Instances[] | 
select(.Tags[].Value | startswith("dev-server-"))'

Vous pouvez ajouter des filtres supplémentaires à jq pour obtenir des résultats plus spécifiques, tels que

... startswith("dev-server-")) | .PublicDnsName'

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X