$ gcloud --format="value(networkInterfaces[0].accessConfigs[0].natIP)" compute instances list
此命令当前用于获取所有活动的ips,但如果我有多个实例组,则可以说一个被称为:Office,另一个称为Home
如何仅在实例组“Office”中获取实例IP
答案 0 :(得分:2)
不幸的是,没有简单的方法可以做到这一点。理想情况下,它应该是gcloud 实例组list-instances API的一部分,但它不会返回IP地址,只返回实例名称。
到目前为止,我已经设法通过执行2个不同的命令来获得所需的响应。
instances=$(gcloud beta compute instance-groups list-instances <Enter Your Instance Group Name Here> | awk -v ORS=, '{if(NR>1)print $1}')
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)
将捕获变量第二命令应该是自我解释的。
如果有人可以将这两个命令组合成一个命令,那就太棒了。