我有很多实例在 GCE 中运行。我想以编程方式获取它们的内部 IP 地址列表,而无需登录到实例(本地)。
我知道我可以跑:
gcloud compute instances list
但是我可以传递任何标志来获取我想要的信息吗? 例如
gcloud compute instances list --internal-ips
或者类似的?或者我是否必须重新整理我的 sed/awk 大脑并解析输出?
我还知道我可以使用 --format=json 获取 JSON 格式的输出,但我正在尝试在 bash 脚本中执行此操作。
最佳答案
以编程方式获取内部 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
关于awk - 如何获取GCE实例的内部IP地址列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27994033/