Ответ 1
Непосредственно из aws cli:
aws ec2 describe-instances \
--query "Reservations[*].Instances[*].PublicIpAddress" \
--output=text
Я хочу перечислить общедоступные IP-адреса моих экземпляров EC2 с помощью Bash, разделенных разделителем (пробелом или новой строкой).
Я попытался передать вывод jq с помощью aws ec2 describe-instances | jq
, но не может изолировать только IP-адреса.
Можно ли это сделать только с помощью aws
, указав аргументы jq
или что-то еще?
Непосредственно из aws cli:
aws ec2 describe-instances \
--query "Reservations[*].Instances[*].PublicIpAddress" \
--output=text
В приведенной ниже команде будут перечислены IP-адреса всех ваших экземпляров EC2
aws ec2 describe-instances | grep PublicIpAddress | grep -o -P "\d+\.\d+\.\d+\.\d+" | grep -v '^10\.'
Надеюсь, что ответ на ваш запрос.
aws ec2 describe-instances --query "Reservations[].Instances[][PublicIpAddress]"
См: http://docs.aws.amazon.com/cli/latest/userguide/controlling-output.html
Вы можете использовать метаданные экземпляра, чтобы вы могли запустить следующую команду из экземпляра 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