J'ai une instance nommée dev-server-03
. Maintenant, comment puis-je rechercher toutes les dev-server-*
instances en ligne de commande?
J'utilise l'outil aws cli.
J'ai une instance nommée dev-server-03
. Maintenant, comment puis-je rechercher toutes les dev-server-*
instances en ligne de commande?
J'utilise l'outil aws cli.
Réponses:
En supposant que vous utilisiez la convention qui consiste à mettre le nom de l'instance dans une balise avec la clé "Name" (c'est ce que fait AWS Console lorsque vous entrez un nom), vous pouvez utiliser l' --filters
option pour répertorier ces instances avec aws-cli:
aws ec2 describe-instances --filters 'Name=tag:Name,Values=dev-server-*'
Si vous voulez juste les identifiants d'instance de ces instances, vous pouvez utiliser:
aws ec2 describe-instances --filters 'Name=tag:Name,Values=dev-server-*' \
--output text --query 'Reservations[*].Instances[*].InstanceId'
Note: --query
peut nécessiter une version récente de aws-cli mais ça vaut le coup.
Name=tag:Name
--query 'Reservations[].Instances[].[InstanceId]
ce qui fonctionne pour moi
jq
outil peut être utilisé pour obtenir des résultats similaires à aws --query
ceux-ci: - aws ec2 describe-instances | jq '.Reservations[].Instances[].PrivateIpAddress'
notez le .
point précédent .
Vous pouvez également filtrer par nom, identifiant d'instance et adresse IP privée avec 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