如何获取 Azure VM 的 Azure VMUUID?

如何获取 Azure VM 的 Azure VMUUID?

我正在为 Azure Log Analytics 工作区创建一个 ARM 模板。它有一些使用 Azure VM 的 VMUUID 的查询。有没有办法在 ARM 模板中获取 Azure VM 的 VMUUID,或者有任何其他方法可以获取 Azure VMUUID?

答案1

根据2014 年的一篇博客文章应该可以使用一些非常简单的脚本获取 Linux 和 Windows 主机的 VMUUID。例如这个(适用于 Windows):

$computerSystemProduct = Get-WmiObject -class Win32_ComputerSystemProduct -namespace root\CIMV2

'BIOS GUID:             "{0}"' -f $computerSystemProduct.UUID

这些脚本可以在虚拟机本身上运行,或者通过使用 Azure 中虚拟机刀片提供的“运行命令”选项来运行。

您还可以使用虚拟机扩展。这样,您可以在部署完成后立即准备好 VMUUID。扩展在模板中的示例如下:

    {
  "type": "Microsoft.Compute/virtualMachines/extensions",
  "apiVersion": "2020-12-01",
  "name": "[concat(parameters('vmName'),'/', 'GetVMUUID')]",
  "location": "[parameters('location')]",
  "dependsOn": [
      "[concat('Microsoft.Compute/virtualMachines/',parameters('vmName'))]"
  ],
  "properties": {
      "publisher": "Microsoft.Compute",
      "type": "CustomScriptExtension",
      "typeHandlerVersion": "1.7",
      "autoUpgradeMinorVersion":true,
      "settings": {
        "fileUris": [
          "https://raw.githubusercontent.com/<Path to the script for getting VMUUID>"
        ],
        "commandToExecute": "powershell.exe -ExecutionPolicy Unrestricted -File GetVMUUID.ps1"
      }
  }
}

请记住,脚本(第一个代码块)本身需要通过 URI 供 Azure 资源管理器访问。您可以通过公共 GitHub 存储库(可能是最简单的)或通过 Azure 存储帐户和 SAS 令牌提供此信息。

现在,对于直接获取输出,我不太确定。一种选择是附加脚本,并将其写入您稍后可以访问的文件或位置。另一种选择,我还没有尝试过,是通过模板本身获取输出,如本示例中所述:Azure 快速启动模板。我稍后可能会自己启动 RG 来看看,但如果您决定检查该路线,请随时告诉我,以及它进展如何 :)

这篇文章比我预期的要长,而且可能不太清楚,但我至少希望它能为你指明正确的方向!

谢谢,埃米尔

相关内容