GCP: назначить / удалить эфемерный IP существующему экземпляру

У меня есть несколько экземпляров в GCP, и для административных целей мне нужно ненадолго подключиться по SSH и запустить несколько команд. У этих экземпляров нет внешнего IP-адреса в «нормальном» режиме, но для этого краткого обслуживания я хотел бы назначить временный IP-адрес, выполнить обслуживание, а затем удалить их.

Это можно легко сделать в веб-интерфейсе (отредактируйте экземпляр, измените конфигурацию NIC, чтобы добавить эфемерный IP-адрес NAT), но я бы хотел избежать этого, поскольку у меня есть несколько экземпляров ... Мне что-то не хватает в документации gcloud?


person gdupont    schedule 28.11.2017    source источник


Ответы (2)


Нашел его после некоторого (слишком долгого) изучения глубокой части документации gcloud.

В разделе, посвященном назначению статического внешнего IP-адреса экземпляру (да, в статической части), говорится в небольшой заметке:

«Если вы собираетесь использовать временный внешний IP-адрес, вы можете пропустить этот шаг, и Compute Engine случайным образом назначит временный внешний IP-адрес».

https://cloud.google.com/compute/docs/ip-addresses/reserve-static-external-ip-address#ipassign

Итак, "ключевое" слово - добавить accessConfig к вашему экземпляру, например:

gcloud compute instances add-access-config [INSTANCE_NAME] \
--access-config-name "[ACCESS_CONFIG_NAME]" 

В этом примере есть опция --address [IP_ADDRESS] для назначения статического внешнего IP-адреса, но, как сказано в примечании, это необязательно. Честно говоря, найти непросто!

person gdupont    schedule 28.11.2017

С помощью Google Cloud SDK вы можете использовать следующий рабочий процесс:

Установите некоторые переменные;

instance=instance-1
zone=asia-northeast2-a

Установите для экземпляра внешний эфемерный адрес ipv4, выполните для него команды обслуживания и сбросьте его внешний эфемерный адрес ipv4;

gcloud compute instances add-access-config $instance --zone=$zone

gcloud compute ssh $instance --zone=$zone --command="maintenance #..."

gcloud compute instances delete-access-config $instance --zone=$zone

Ссылки на соответствующую документацию Cloud SDK: instance / description, instance / add-access-config, ssh и instance / delete-access-config.

person fbraga    schedule 20.05.2019