$rgname = "myrg"
$vmssname = "myvmss"
$newversion = "4.0.20160229"
$instanceid = "1"
# get the VMSS model
$vmss = Get-AzureRmVmss -ResourceGroupName $rgname -VMScaleSetName $vmssname
# set the new version in the model data
$vmss.virtualMachineProfile.storageProfile.imageReference.version = $newversion
# update the virtual machine scale set model
Update-AzureRmVmss -ResourceGroupName $rgname -Name $vmssname -VirtualMachineScaleSet $vmss
# now start updating instances
Update-AzureRmVmssInstance -ResourceGroupName $rgname -VMScaleSetName $vmssname -InstanceId $instanceId
如果您的 VMSS 使用 VHD 创建,我们应该使用这个 PowerShell 脚本:
# set the new version in the model data
$vmss.virtualMachineProfile.storageProfile.osDisk.image.uri= $newURI
如果您的 VMSS 使用映像(托管磁盘)创建,我们应该使用此脚本:
# set the new version in the model data
$vmss.virtualMachineProfile.storageProfile.imageReference.id = $newImageReference
我们知道,Azure VMSS 使用您的自定义映像创建新实例,因此如果您想要使用新 SSL 的新实例,我们需要更新 VHD 或映像。
在您的场景中,我们可以使用具有新 SSL 证书的自定义映像来更新Azure VMSS。
我们可以在不停机的情况下向 Azure 虚拟机规模集推出操作系统更新,但这不适用于从 Azure 市场创建的 VMSS(如屏幕截图)。
这里有一个示例更新 Windows 虚拟机规模集,更新模型后,它一次更新一个虚拟机实例。
如果您的 VMSS 使用 VHD 创建,我们应该使用这个 PowerShell 脚本:
如果您的 VMSS 使用映像(托管磁盘)创建,我们应该使用此脚本:
有关更新 Azure VMSS 的更多信息,请参阅此链接。