Cerca l'istanza ec2 in base al nome dallo strumento da riga di comando aws


32

Ho un'istanza chiamata dev-server-03. Ora come posso cercare tutte le dev-server-*istanze dalla riga di comando?

Sto usando lo strumento aws cli.


Questo dipende da come hai chiamato l'istanza. Hai impostato il nome host all'interno del sistema operativo, sulla console AWS o su entrambi?
Craig Watson,

Sì, all'interno del sistema operativo hostname è impostato sullo stesso nome.
Shiplu Mokaddim,

Risposte:


55

Supponendo che tu stia utilizzando la convenzione di inserire il nome dell'istanza in un tag con la chiave di "Nome" (questo è ciò che fa la Console AWS quando inserisci un nome), allora puoi utilizzare l' --filtersopzione per elencare quelle istanze con AWS-cli:

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

Se desideri solo gli ID istanza di tali istanze, puoi utilizzare:

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

Nota: --querypotrebbe richiedere una versione recente di aws-cli ma vale la pena ottenerlo.


1
Oh mio Dio, ho impiegato quasi mezz'ora per capirlo ... quanto è strano questo:Name=tag:Name
Lisbona

1
Grazie Eric - Stavo ottenendo più ID istanza sulla stessa riga, usando la tua query, ma github.com/aws/aws-cli/issues/914#issuecomment-56210312 mi ha suggerito --query 'Reservations[].Instances[].[InstanceId]quale funziona per me
jaygooby

3
FWIW, lo jqstrumento può essere utilizzato per ottenere risultati aws --querysimili in questo modo: - aws ec2 describe-instances | jq '.Reservations[].Instances[].PrivateIpAddress'annotare il .punto precedente .
MarkHu,

puoi rendere insensibili alle maiuscole / minuscole i filtri descrittivi?
red888

3

Puoi filtrare ulteriormente con nome, ID istanza e IP privato con sotto,

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
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.