实例组的所有 IP

实例组的所有 IP

如何将与我的实例组关联的所有外部 IP 列表放入某种文本文件中。我的实例组中可以有数百台机器,而虚拟机列表并不实用。

答案1

GCE 实例的外部 IP 不能直接从实例组中检索,它附加到实例,这意味着您必须从实例详细信息中提取它。我可以想到两种实现此目的的方法 -

  1. (较慢) - 获取实例组中的实例列表,并循环遍历每个实例以获取其外部 IP。cligcloud工具可以帮助完成此操作,使用--format--filter选项获取特定字段并过滤特定实例 - gcloud compute instance-groups managed list-instances --help

  2. (更快)- 对于托管实例组 (MIG),有一个baseInstanceName用于命名 MIG 下实例的属性,即 MIG 下的每个实例都将以该前缀作为其名称。假设具有该前缀的实例属于实例组,则可以使用以下命令提取外部 IP

假设您的实例组名称为“testig”,获取第baseInstanceName一个 -

prefix=$(gcloud compute instance-groups managed list --format='value(baseInstanceName)' --filter='name~^testig')

然后获取实例名称和实例的外部 IP -

gcloud compute instances list --filter="name~^${prefix}" --format='value(name,networkInterfaces[0].accessConfigs[0].natIP)'

相关内容