如何使用 Azure CLI 命令获取虚拟机的 public IP 地址

How to get public ip address for virtual-machine using Azure CLI command

我想在 Azure bash 命令行中获取特定虚拟机的 public IP 地址,到目前为止我已经使用了这个命令,但它 returns 网络接口信息:

az vm list-ip-addresses -g dev-rg -n dev-vm

返回值:

[
  {
    "virtualMachine": {
      "name": "dev-vm",
      "network": {
        "privateIpAddresses": [
          "10.0.0.5"
        ],
        "publicIpAddresses": [
          {
            "id": "/subscriptions/*********/resourceGroups/dev-rg/providers/Microsoft.Network/publicIPAddresses/dev-vmPublicIP",
            "ipAddress": "52.142.***.***",
            "ipAllocationMethod": "Dynamic",
            "name": "dev-vmPublicIP",
            "resourceGroup": "dev-rg"
          }
        ]
      },
      "resourceGroup": "dev-rg"
    }
  }
]

我只需要 IP 地址值应该是这样的:52.142.xxx.xxx

您可以只使用 CLI 命令 az vm show -d -g reousrceGroupName -n vmName --query publicIps -o tsv 输出 public IP。

就是这样显示的:

您也可以继续您最初的想法(关键点是 --query--output 参数):

az vm list-ip-addresses --resource-group dev-rg --name dev-vm --query "[].virtualMachine.network.publicIpAddresses[0].ipAddress" --output tsv

由于 documentation states,使用 az vm show --show-details 可能会很慢。

短命令

az vm list-ip-addresses -n SampleVM -o table

参考:

https://docs.microsoft.com/en-us/learn/modules/manage-virtual-machines-with-azure-cli/6-querying-vms

如果你想为多台机器获取 public IP,你也可以使用 az network public-ip:

az network public-ip list -o table