Skip Navigation

VMSS Flexible Orchestration Mode Quickstart Linux

Last updated: 20-06-2022

This template deploys a simple VM Scale Set with instances behind an Azure Load Balancer. The VM Scale set is in Flexible Orchestration Mode. Use the os parameter to choose Linux (Ubuntu) or Windows (Windows Server Datacenter 2019) deployment. NOTE: This quickstart template enables network access to VM management ports (SSH, RDP) from any internet address, and should not be used for production deployments. For Network security best practices for production deployments, see [Azure Network Security Best Practices](

This Azure Resource Manager (ARM) template was created by a member of the community and not by Microsoft. Each ARM template is licensed to you under a licence agreement by its owner, not Microsoft. Microsoft is not responsible for ARM templates provided and licensed by community members and does not screen for security, compatibility or performance. Community ARM templates are not supported under any Microsoft support programme or service and are made available AS IS without warranty of any kind.


Parameter Name Description
vmssName Name for the virtual machine scale set
vmssAdminUserName User name for virtual machine instances
vmssAdminPasswordOrSSHKey Password or SSH Key for the VM instances. Be sure to also update whether using Password or SSH Key authentication on the VMSS Flex
instanceCount Number of virtual machine instances in the scale set
platformFaultDomainCount The platform fault domain count for your scale set. Set to 1 to allow Azure to maximally spread instances across many racks in the datacenter.
zones Instances will be spread evenly between the zones you selected
sku Specifies the virtual machine SKU to be used
vnetPrefix Virtual network prefix
lbName Name for the load balancer
os Choose the operating system for the VMs in the Virtual Machine Scale Set
location Region where the scale set will be deployed

Use the template


New-AzResourceGroup -Name <resource-group-name> -Location <resource-group-location> #use this command when you need to create a new resource group for your deployment
New-AzResourceGroupDeployment -ResourceGroupName <resource-group-name> -TemplateUri
Install and configure Azure PowerShell

Command line

az group create --name <resource-group-name> --location <resource-group-location> #use this command when you need to create a new resource group for your deployment
az group deployment create --resource-group <my-resource-group> --template-uri
Install and Configure the Azure Cross-Platform Command-Line Interface

More templates by Fitzgerald Steele