As you know with Azure Virtual Machine Scale Sets you can create and group identical virtual machines to deliver load balanced and highly available service; the number of virtual machine instances is automatically increased or decreased to match the demand.
You may also know that the operating system of each virtual machine part of a scale set can be automatically updated but this did not cover custom operating system image (see https://docs.microsoft.com/en-au/azure/virtual-machine-scale-sets/shared-image-galleries).
Well, good news, this automatic update for custom images is now available.
The process is the same than for ‘standard’ operating system images, with the same limitations:
- Supported Operating Systems
- Ubuntu Server 16.04 LTS and 18.04 LTS
- CentOS 7.5
- CoreOS
- Windows Server 2012 R2 Datacenter, 2016 Datacenter (including the small disk or with containers SKU’s), 2019 Datacenter (including the small disk or with containers SKU’s)
Then you can enable the automatic update capability using either Azure Cli or Azure PowerShell (remember you can use Cloud Shell to execute the command) for each subscription you want to get it enabled:
- Azure PowerShell
Register-AzProviderFeature -FeatureName AutomaticOSUpgradeWithGalleryImage -ProviderNamespace Microsoft.Compute
Register-AzResourceProvider -ProviderNamespace Microsoft.Compute
Then you can enable the automatic update on your scale set
Update-AzVmss -ResourceGroupName “<resource group where is located your scale set>” -VMScaleSetName “<your virtual machine scale set>” -AutomaticOSUpgrade $true
- Azure Cli
az feature register –namespace Microsoft.Compute –name AutomaticOSUpgradeWithGalleryImage
az provider register –namespace Microsoft.Compute
Then you can enable the automatic update on your scale set
az vmss update –name “<your virtual machine scale set>” –resource-group “<resource group where is located your scale set>” –set UpgradePolicy.AutomaticOSUpgradePolicy.EnableAutomaticOSUpgrade=true
The first time, it can then take up to 2 hours for a scale set to get the first rollout; subsequent updates will be applied quicker.