如何在GCE上获取特定实例组的外部IP - Google Compute Engine?

时间:2018-04-28 01:49:17

标签: google-compute-engine

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

此命令当前用于获取所有活动的ips,但如果我有多个实例组,则可以说一个被称为:Office,另一个称为Home

如何仅在实例组“Office”中获取实例IP

1 个答案:

答案 0 :(得分:2)

不幸的是,没有简单的方法可以做到这一点。理想情况下,它应该是gcloud 实例组list-instances API的一部分,但它不会返回IP地址,只返回实例名称。

到目前为止,我已经设法通过执行2个不同的命令来获得所需的响应。

  1. 获取所有实例的名称
  2. instances=$(gcloud beta compute instance-groups list-instances <Enter Your Instance Group Name Here> | awk -v ORS=, '{if(NR>1)print $1}')

    1. 获取外部IP
    2. gcloud --format="value(networkInterfaces[0].accessConfigs[0].natIP)" compute instances list --filter="name=( $instances )"

      第一个命令的细分/说明:

      • gcloud beta compute instance-groups list-instances <Enter Your Instance Group Name Here>将返回该实例组中的所有实例
      • awk -v ORS=,将替换所有行,并返回单个逗号分隔的字符串
      • 'if(NR>1)将排除第一行响应,即NAME
      • print $1只会获得第一列 是实例名称
      • instances=$(<Entire Gcloud Command with awk)将捕获变量
      • 中的响应

      第二命令应该是自我解释的。

      如果有人可以将这两个命令组合成一个命令,那就太棒了。