К сожалению, нет простого способа сделать это. В идеале он должен быть частью API-интерфейса gcloud список-экземпляров групп , но он не возвращает IP-адреса, только имена экземпляров.
Пока мне удалось получить желаемый ответ, выполнив 2 разные команды.
- Чтобы получить имена всех экземпляров
instances=$(gcloud beta compute instance-groups list-instances <Enter Your Instance Group Name Here> | awk -v ORS=, '{if(NR>1)print $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-я команда должна быть самоочевидной.
Будет замечательно, если кто-то сможет объединить эти две команды в одну команду.