Simple VM Scale Set with Linux VMs and public IPv4 per VM

Azure Public Test Date Azure Public Test Result

Azure US Gov Last Test Date Azure US Gov Last Test Result

Best Practice Check Cred Scan Check

Deploy To Azure Deploy To Azure US Gov Visualize

This template deploys a simple VM Scale Set of Ubuntu 16.04-LTS VMs and assigns a public IP address to each one. With this scale set you can connect directly to the public IP addresses, or indirectly to the scale set VM private IP addresses using the load balancer inbound NAT rules:

Direct connection: ssh {username}@{public-ip-address of VM}

Indirect connection via load balancer: ssh -p 50000 {username}@{load balancerpublic-ip-address}

To determine the public IP address of each VM using Azure CLI 2.0 (July 2017 version or later), using the az vmss list-instance-public-ips command. See Networking for Azure virtual machine scale sets for more details on Azure scale set networking features.


vmssName must be 3-61 characters in length. It should also be globally unique across all of Azure.

instanceCount must be 100 or less (you could adapt this template to deploy up to 1000 VMs, if you removed the load balancer and changed the singlePlacementGroup property to false. If you need a scale set of more than 100 VMs with load balancer, use the Application Gateway instead).

Tags: Microsoft.Network/virtualNetworks, Microsoft.Network/publicIPAddresses, Microsoft.Network/loadBalancers, Microsoft.Compute/virtualMachineScaleSets