我有一堆在GCE中运行的实例.我想以编程方式获取它们的内部IP地址列表,而无需登录实例(本地).
我知道我可以跑:
gcloud compute instances list
但是有没有我可以通过的标志来获取我想要的信息?
例如
gcloud compute instances list --internal-ips
或者类似的?或者我将不得不掸掉我的sed / awk大脑并解析输出?
解决方法
以编程方式获取内部IP(或外部IP)列表而不依赖于除gcloud之外的任何工具的最简单方法是:
$gcloud --format="value(networkInterfaces[0].networkIP)" compute instances list $gcloud --format="value(networkInterfaces[0].accessConfigs[0].natIP)" compute instances list
这使用--format=value
,其还需要projection,其是选择资源数据值的resource keys的列表.对于任何命令,您可以使用–format = flattened来获取资源键/值对的列表:
$gcloud --format=flattened compute instances list