【发布时间】:2021-07-09 09:22:06
【问题描述】:
我有一个带有几个实例的 Azure VMSS(虚拟机规模集),链接到“图像库”。 VMSS 的配置方式是它应该始终从图像库中选择特定图像的最新版本。
我如何以及在哪里可以查看特定实例上安装了哪个版本的映像?
【问题讨论】:
标签: azure azure-virtual-machine
我有一个带有几个实例的 Azure VMSS(虚拟机规模集),链接到“图像库”。 VMSS 的配置方式是它应该始终从图像库中选择特定图像的最新版本。
我如何以及在哪里可以查看特定实例上安装了哪个版本的映像?
【问题讨论】:
标签: azure azure-virtual-machine
如果图像库配置为在新实例上安装最新图像,则图像版本可能会因实例而异。图像的实际安装版本存储在 vmss 对象的storageProfile.imageReference.exactVersion 属性中。
列出现有规模集中特定机器的已安装映像版本:
az vmss show --resource-group "<resource group name>" \
--subscription "<subscription name>" \
--name <vmss name> \
--instance-id <instance id> \
--query storageProfile.imageReference.exactVersion
回复与图片库中定义的版本号匹配:
"2021.06.1782103"
如果实例 ID 未知,则可以获取现有规模集的所有实例 ID:
az vmss list-instances --resource-group "<resource group name>" \
--subscription "<subscription name>" \
--name <vmss name> \
--query [].instanceId
[
"1141",
"1142",
"1143"
]
为了进一步简化事情,可以列出现有规模集中每台机器的已安装映像版本。例如,这允许查看所有实例是否都处于相同版本或是否留下一个:
az vmss list-instances --resource-group "<resource group name>" \
--subscription "<subscription name>" \
--name <vmss name> \
--query [].storageProfile.imageReference.exactVersion
在一个包含 3 个实例的示例中,回复可能表明两台机器使用较新的版本 (...03),而一台机器仍在使用较旧版本的映像 (...02):
[
"2021.06.1782102",
"2021.06.1782103",
"2021.06.1782103"
]
最后,结合这个也可以同时查询instanceId和安装的镜像版本:
az vmss list-instances --resource-group "<resource group name>" --subscription "<subscription name>" --name <vmss name> --query "[].[instanceId,storageProfile.imageReference.exactVersion]"
[
[
"1141",
"2021.06.1782102"
],
[
"1142",
"2021.06.1782103"
],
[
"1143",
"2021.06.1782103"
]
]
【讨论】:
您可以使用带有以下语法的Get-AzVmssVM cmdlet 获取一个特定实例的图像参考的完整版本:
(Get-AzVmssVM -ResourceGroupName $rgName -Name $ScaleSetName -InstanceId $instanceId).StorageProfile.ImageReference
【讨论】: