web-dev-qa-db-ja.com

EC2インスタンスのパブリックIPアドレスを一覧表示する

Bashを使用してEC2インスタンスのパブリックIPアドレスを区切り文字(スペースまたは改行)で区切って一覧表示したい。

出力をaws ec2 describe-instances | jqjq にパイプしようとしましたが、IPアドレスだけを分離することはできないようです。

これはawsに引数を指定するjqのみ、または他の完全な方法で実行できますか?

37
Bas Peeters

aws cli から直接:

aws ec2 describe-instances \
  --query "Reservations[*].Instances[*].PublicIpAddress" \
  --output=text
83
faermanj
  • 実行中のインスタンスをフィルタリングします(必要ない場合はその部分をドロップできます)
  • Nameが設定されていない場合の処理​​、各PublicIPaddressとNameタグのクエリ

    aws ec2 describe-instances --filter "Name = instance-state-name、Values = running" --query "Reservations []。Instances []。[PublicIpAddress、Tags [?Key == '] Name ']。Value | [0]] "-出力テキスト

5
Brad Giaccio

以下のコマンドは、実行中のすべてのEC2インスタンスのIPアドレスをリストします

aws ec2 describe-instances | grep PublicIpAddress | grep -o -P "\d+\.\d+\.\d+\.\d+" | grep -v '^10\.'

それがあなたの質問に答えることを願っています。

5
A Null Pointer

instance metadata を使用して、ec2インスタンスから次のコマンドを実行できます。

curl http://169.254.169.254/latest/meta-data/public-ipv4

インスタンスのパブリックIPが提供されます。プライベートIPが必要な場合は、実行します

curl http://169.254.169.254/latest/meta-data/local-ipv4
4
aws ec2 describe-instances --query "Reservations[].Instances[][PublicIpAddress]"

参照: http://docs.aws.Amazon.com/cli/latest/userguide/controlling-output.html

3
Sarat Chandra