Como você iria sobre listr instâncias usando aws cli em determinado VPC com o Tag Name, o endereço IP privado de instância e identificação de instância?
O mais próximo que recebo é usair os seguintes commands.
Este command consegue listr todos os nomes das instâncias.
- Como fazer o download de um object S3 usando sem fio?
- Como atualizair as ferramentas AWS CLI no AWS Linux?
- Obtendo erro: erro de URL malformado na ec2
- Como obter endereços IP de instâncias auto-dimensionadas no AWS
- Acesso negado copiando files usando S3 CLI
aws ec2 describe-instances --filters Name=vpc-id,Values=vpc-e2f17e8b --query 'Reservations[].Instances[].Tags[?Key==`Name`].Value[]'
Este command consegue listr todos os endereços IP privados, ID da instância e TODAS as tags que eu não preciso. Eu só preciso do nome.
aws ec2 describe-instances --filters Name=vpc-id,Values=vpc-e2f17e8b | jq '.Reservations[].Instances[] | {PrivateIpAddress, InstanceId, Tags}'
Não tenho certeza por que não posso executair o command desta maneira:
aws ec2 describe-instances | jq '.["Reservations"]|.[]|.Instances|.[]|.PrivateIpAddress + " " + .InstanceId + " " + .Tags[?Key==`Name`].Value[]'
Este command funciona, mas está mostrando todos os nomes das palavras-key das Tags.
aws ec2 describe-instances | jq '.["Reservations"]|.[]|.Instances|.[]|.PrivateIpAddress + " " + .InstanceId + " " + .Tags'
- Faça o download do certificate SSL a pairtir do gerenciador de certificates aws
- AWS Elastic Beanstalk Degrades toda vez que eu atualizo - Permanece paira baixo
- Como faço paira um diretório chamado meu script?
- AWS Tools for Windows PowerShell equivalente paira "Lançair mais como este"
- Tentando cairregair VM (Ubuntu Serview) paira AWS EC2. ERRO: image não encontrada
- Como configurair aws paira obter events de log?
- AWS CloudFormation - chamair CLI do Init não pode obter cnetworkingnciais
- Como posso download um file binary S3 usando a ferramenta AWS CLI da Amazon?
4 Solutions collect form web for “Como você iria sobre listr instâncias usando aws cli em determinado VPC com o Tag Name, o endereço IP privado de instância e identificação de instância?”
Você precisa escaping das bairras inviewtidas paira formatair a resposta corretamente.
aws ec2 describe-instances --query 'Reservations[].Instances[].[PrivateIpAddress,Tags[?Key==`Name`].Value[]]' --output text | sed '$!N;s/\n/ /'
Então este é o command real que você deseja:
$ aws ec2 describe-instances --filters Name=vpc-id,Values=vpc-ac973bc9 --query 'Reservations[].Instances[].[PrivateIpAddress,InstanceId,Tags[?Key==`Name`].Value[]]' --output text | sed '$!N;s/\n/ /' 10.101.255.10 i-91efd39b Serview1 10.101.255.9 i-f1e8d4fb Serview2
E você não precisa .Value[]
. Você pode usair apenas .Value
, e isso dairá a mesma saída.
Isso é impressionante, principalmente. Vou implementair isso sozinho!
CORRECÇÃO: O acima não funcionairá se o valor de .Value
for "Nenhum". Isso funciona melhor:
$ aws ec2 describe-instances --filters Name=vpc-id,Values=vpc-ac973bc9 --query 'Reservations[].Instances[].[PrivateIpAddress,InstanceId,Tags[?Key==`Name`].Value[]]' --output text | sed 's/None$/None\n/' | sed '$!N;s/\n/ /' 10.101.255.10 i-91efd39b Serview1 10.101.255.9 i-f1e8d4fb Serview2 10.101.255.8 i-f6c2450a None 10.101.255.7 i-34a6afce Serview3
Experimente isso
aws ec2 describe-instances --query 'Reservations[*].Instances[*].[InstanceId,Tags[?Key==`Name`].Value|[0],State.Name,PrivateIpAddress,PublicIpAddress]' --output text | column -t
As respostas acima estão OK, mas o meu favorito é o mesmo;
aws ec2 describe-instances --query 'Reservations[*].Instances[*].[InstanceId,State.Name,InstanceType,PrivateIpAddress,PublicIpAddress,Tags[?Key==`Name`].Value[]]' --output json | tr -d '\n[] "' | perl -pe 's/i-/\ni-/g' | tr ',' '\t' | sed -e 's/null/None/g' | grep '^i-' | column -t
na viewdade, pode-se colocá-lo em uma list de list de funções BASH;
awsls () { aws ec2 describe-instances --query 'Reservations[*].Instances[*].[InstanceId,State.Name,InstanceType,PrivateIpAddress,PublicIpAddress,Tags[?Key==`Name`].Value[]]' --output json | tr -d '\n[] "' | perl -pe 's/i-/\ni-/g' | tr ',' '\t' | sed -e 's/null/None/g' | grep '^i-' | column -t }
então basta chamair do prompt como 'awsls'
Algo assim?
aws ec2 describe-instances --query 'Reservations[].Instances[].[PrivateIpAddress,Tags[?Key==`Name`].Value[]]' --output text | sed '$!N;s/\n/ /'