Как получить внешние IP-адреса определенной группы экземпляров в GCE - Google Compute Engine? - PullRequest
0 голосов
/ 28 апреля 2018
$ gcloud --format="value(networkInterfaces[0].accessConfigs[0].natIP)" compute instances list

Эта команда в настоящее время работает, чтобы получить ВСЕ ips, которые активны, но если у меня несколько групп экземпляров, скажем, одна называется: Office, а другая называется Home

Как получить только IP-адреса экземпляров только в группе экземпляров "Office"

1 Ответ

0 голосов
/ 30 апреля 2018

К сожалению, нет простого способа сделать это. В идеале он должен быть частью API-интерфейса gcloud список-экземпляров групп , но он не возвращает IP-адреса, только имена экземпляров.

Пока мне удалось получить желаемый ответ, выполнив 2 разные команды.

  1. Чтобы получить имена всех экземпляров

instances=$(gcloud beta compute instance-groups list-instances <Enter Your Instance Group Name Here> | awk -v ORS=, '{if(NR>1)print $1}')

  1. Для получения внешних IP-адресов

gcloud --format="value(networkInterfaces[0].accessConfigs[0].natIP)" compute instances list --filter="name=( $instances )"

Разбивка / объяснение 1-й команды:

  • gcloud beta compute instance-groups list-instances <Enter Your Instance Group Name Here> вернет все экземпляры в этой группе экземпляров
  • awk -v ORS=, заменяет все строки на и возвращает одну строку, разделенную запятой
  • 'if(NR>1) исключит первую строку ответа с именем NAME
  • print $1 получит только 1-й столбец, который имена экземпляров
  • instances=$(<Entire Gcloud Command with awk) захватит ответ в переменной

2-я команда должна быть самоочевидной.

Будет замечательно, если кто-то сможет объединить эти две команды в одну команду.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...