J'ai une instance nommée dev-server-03
. Maintenant, comment puis-je rechercher tout dev-server-*
instances de ligne de commande?
J'utilise l'outil aws cli.
En supposant que vous utilisez la convention consistant à mettre le nom de l'instance dans une balise avec la clé "Nom" (c'est ce que fait la console AWS lorsque vous entrez un nom), vous pouvez utiliser le --filters
option pour lister ces instances avec aws-cli:
aws ec2 describe-instances --filters 'Name=tag:Name,Values=dev-server-*'
Si vous vouliez simplement les ID 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'
Remarque: --query
peut nécessiter une version récente de aws-cli mais ça vaut le coup.
Vous pouvez filtrer davantage avec le nom, l'ID d'instance et l'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
Si vous utilisez jq
, vous pouvez y parvenir avec:
aws ec2 describe-instances |
jq -r '.Reservations[].Instances[] |
select(.Tags[].Value | startswith("dev-server-"))'
Vous pouvez ajouter des filtres supplémentaires à jq
pour des résultats plus spécifiques, tels que:
... startswith("dev-server-")) | .PublicDnsName'