Как получить Azure VMUUID Azure VM?
Я создаю шаблон ARM для рабочей области Azure Log Analytics. У него есть несколько запросов, которые используют VMUUID виртуальной машины Azure. Есть ли способ получить VMUUID виртуальной машины Azure в шаблоне ARM или какие-либо другие способы получить VMUUID Azure?
1 ответ
Согласно сообщению в блоге от 2014 года, должно быть возможно получить VMUUID как для хостов Linux, так и для Windows с помощью некоторых довольно простых сценариев. Вот такой (для Windows):
$computerSystemProduct = Get-WmiObject -class Win32_ComputerSystemProduct -namespace root\CIMV2
'BIOS GUID: "{0}"' -f $computerSystemProduct.UUID
Эти сценарии можно запускать на самих виртуальных машинах или с помощью параметра «Выполнить команду», предлагаемого в блейде виртуальной машины в Azure.
Вы также можете развернуть сценарий для запуска через шаблон ARM виртуальной машины, используя расширение виртуальной машины . Таким образом, вы сможете подготовить 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"
}
}
}
Имейте в виду, что сам сценарий (первый блок кода) должен быть доступен для Azure Resource Manager через URI. Вы можете предоставить это либо через общедоступный репозиторий GitHub (вероятно, проще всего), либо через учетную запись хранения Azure и токен SAS.
Теперь, что касается прямого вывода результатов, я не так уверен. Один из вариантов — добавить сценарий и записать его в файл или место, к которому вы сможете получить доступ позже. Другой вариант, который я еще не опробовал, — получить выходные данные через сам шаблон, как описано в этом примере: Шаблон быстрого запуска Azure . Я, вероятно, позже раскруту для себя RG, чтобы посмотреть, но не стесняйтесь сообщать мне, если вы решите проверить этот маршрут и как он прошел :)
Это оказалось длиннее, чем я ожидал написать, и, возможно, не так ясно, но я, по крайней мере, надеюсь, что это укажет вам правильное направление!
Спасибо, Эмиль