Microsoft.Compute availabilitySets 2020-06-01
Bicep resource definition
The availabilitySets resource type can be deployed with operations that target:
- Resource groups - See resource group deployment commands
For a list of changed properties in each API version, see change log.
Resource format
To create a Microsoft.Compute/availabilitySets resource, add the following Bicep to your template.
resource symbolicname 'Microsoft.Compute/availabilitySets@2020-06-01' = {
location: 'string'
name: 'string'
properties: {
platformFaultDomainCount: int
platformUpdateDomainCount: int
proximityPlacementGroup: {
id: 'string'
}
virtualMachines: [
{
id: 'string'
}
]
}
sku: {
capacity: int
name: 'string'
tier: 'string'
}
tags: {
{customized property}: 'string'
}
}
Property values
AvailabilitySetProperties
Name | Description | Value |
---|---|---|
platformFaultDomainCount | Fault Domain count. | int |
platformUpdateDomainCount | Update Domain count. | int |
proximityPlacementGroup | Specifies information about the proximity placement group that the availability set should be assigned to. Minimum api-version: 2018-04-01. |
SubResource |
virtualMachines | A list of references to all virtual machines in the availability set. | SubResource[] |
Microsoft.Compute/availabilitySets
Name | Description | Value |
---|---|---|
location | Resource location | string (required) |
name | The resource name | string (required) |
properties | The instance view of a resource. | AvailabilitySetProperties |
sku | Sku of the availability set, only name is required to be set. See AvailabilitySetSkuTypes for possible set of values. Use 'Aligned' for virtual machines with managed disks and 'Classic' for virtual machines with unmanaged disks. Default value is 'Classic'. | Sku |
tags | Resource tags | Dictionary of tag names and values. See Tags in templates |
ResourceTags
Name | Description | Value |
---|
Sku
Name | Description | Value |
---|---|---|
capacity | Specifies the number of virtual machines in the scale set. | int |
name | The sku name. | string |
tier | Specifies the tier of virtual machines in a scale set. Possible Values: Standard Basic |
string |
SubResource
Name | Description | Value |
---|---|---|
id | Resource Id | string |
Quickstart samples
The following quickstart samples deploy this resource type.
Bicep File | Description |
---|---|
2 VMs in VNET - Internal Load Balancer and LB rules | This template allows you to create 2 Virtual Machines in a VNET and under an internal Load balancer and configure a load balancing rule on Port 80. This template also deploys a Storage Account, Virtual Network, Public IP address, Availability Set and Network Interfaces. |
CentOS/UbuntuServer Auto Dynamic Disks & Docker 1.12(cs) | This is a common template for creating single instance CentOS 7.2/7.1/6.5 or Ubuntu Server 16.04.0-LTS with configurable number of data disks (configurable sizes). Maximum 16 disks can be mentioned in the portal parameters and maximum size of each disk should be less than 1023 GB. The MDADM RAID0 Array is automounted and survives restarts. Latest Docker 1.12(cs3) (Swarm), docker-compose 1.9.0 & docker-machine 0.8.2 is available for usage from user azure-cli is auto running as a docker container. This single instance template is an offshoot of the HPC/GPU Clusters Template @ https://github.com/azurebigcompute/BigComputeBench |
Create an Azure VM with a new AD Forest | This template creates a new Azure VM, it configures the VM to be an AD DC for a new Forest |
Create an Ubuntu GNOME desktop | This template creates an ubuntu desktop machine. This works great for use as a jumpbox behind a NAT. |
Deploy Shibboleth Identity Provider cluster on Windows | This template deploys Shibboleth Identity Provider on Windows in a clustered configuration. After the deployment is successful, you can go to https://your-domain:8443/idp/profile/status (note port number) to check success. |
Deploys SQL Server 2014 AG on existing VNET & AD | This template creates three new Azure VMs on an existing VNET: Two VMs are configured as SQL Server 2014 availability group replica nodes and one VM is configured as a File Share Witness for automated cluster failover. In addition to these VMs, the following additional Azure resources are also configured: Internal load balancer, Storage accounts. To configure clustering, SQL Server, and an availability group within each VM, PowerShell DSC is leveraged. For Active Directory support, existing Active Directory domain controllers should already be deployed on the existing VNET. |
IIS VMs & SQL Server 2014 VM | Create 1 or 2 IIS Windows 2012 R2 Web Servers and one back end SQL Server 2014 in VNET. |
JBoss EAP on RHEL (clustered, multi-VM) | This template allows you to create multiple RHEL 8.6 VMs running JBoss EAP 7.4 cluster and also deploys a web application called eap-session-replication, you can log into the admin console using the JBoss EAP username and password configured at the time of the deployment. |
Multi VM Template with Managed Disk | This template will create N number of VM's with managed disks, public IPs and network interfaces. It will create the VMs in a single Availability Set. They will be provisioned in a Virtual Network which will also be created as part of the deployment |
Use Azure Firewall as a DNS Proxy in a Hub & Spoke topology | This sample show how to deploy a hub-spoke topology in Azure using the Azure Firewall. The hub virtual network acts as a central point of connectivity to many spoke virtual networks that are connected to hub virtual network via virtual network peering. |
ARM template resource definition
The availabilitySets resource type can be deployed with operations that target:
- Resource groups - See resource group deployment commands
For a list of changed properties in each API version, see change log.
Resource format
To create a Microsoft.Compute/availabilitySets resource, add the following JSON to your template.
{
"type": "Microsoft.Compute/availabilitySets",
"apiVersion": "2020-06-01",
"name": "string",
"location": "string",
"properties": {
"platformFaultDomainCount": "int",
"platformUpdateDomainCount": "int",
"proximityPlacementGroup": {
"id": "string"
},
"virtualMachines": [
{
"id": "string"
}
]
},
"sku": {
"capacity": "int",
"name": "string",
"tier": "string"
},
"tags": {
"{customized property}": "string"
}
}
Property values
AvailabilitySetProperties
Name | Description | Value |
---|---|---|
platformFaultDomainCount | Fault Domain count. | int |
platformUpdateDomainCount | Update Domain count. | int |
proximityPlacementGroup | Specifies information about the proximity placement group that the availability set should be assigned to. Minimum api-version: 2018-04-01. |
SubResource |
virtualMachines | A list of references to all virtual machines in the availability set. | SubResource[] |
Microsoft.Compute/availabilitySets
Name | Description | Value |
---|---|---|
apiVersion | The api version | '2020-06-01' |
location | Resource location | string (required) |
name | The resource name | string (required) |
properties | The instance view of a resource. | AvailabilitySetProperties |
sku | Sku of the availability set, only name is required to be set. See AvailabilitySetSkuTypes for possible set of values. Use 'Aligned' for virtual machines with managed disks and 'Classic' for virtual machines with unmanaged disks. Default value is 'Classic'. | Sku |
tags | Resource tags | Dictionary of tag names and values. See Tags in templates |
type | The resource type | 'Microsoft.Compute/availabilitySets' |
ResourceTags
Name | Description | Value |
---|
Sku
Name | Description | Value |
---|---|---|
capacity | Specifies the number of virtual machines in the scale set. | int |
name | The sku name. | string |
tier | Specifies the tier of virtual machines in a scale set. Possible Values: Standard Basic |
string |
SubResource
Name | Description | Value |
---|---|---|
id | Resource Id | string |
Quickstart templates
The following quickstart templates deploy this resource type.
Template | Description |
---|---|
2 VMs in a Load Balancer and configure NAT rules on the LB |
This template allows you to create 2 Virtual Machines in an Availability Set and configure NAT rules through the load balancer. This template also deploys a Storage Account, Virtual Network, Public IP address and Network Interfaces. In this template, we use the resource loops capability to create the network interfaces and virtual machines |
2 VMs in a Load Balancer and load balancing rules |
This template allows you to create 2 Virtual Machines under a Load balancer and configure a load balancing rule on Port 80. This template also deploys a Storage Account, Virtual Network, Public IP address, Availability Set and Network Interfaces. In this template, we use the resource loops capability to create the network interfaces and virtual machines |
2 VMs in VNET - Internal Load Balancer and LB rules |
This template allows you to create 2 Virtual Machines in a VNET and under an internal Load balancer and configure a load balancing rule on Port 80. This template also deploys a Storage Account, Virtual Network, Public IP address, Availability Set and Network Interfaces. |
201-vnet-2subnets-service-endpoints-storage-integration |
Creates 2 new VMs with a NIC each, in two different subnets within the same VNet. Sets service endpoint on one of the subnets and secures storage account to that subnet. |
App Gateway with WAF, SSL, IIS and HTTPS redirection |
This template deploys an Application Gateway with WAF, end to end SSL and HTTP to HTTPS redirect on the IIS servers. |
Azure Container Service Engine (acs-engine) - Swarm Mode |
The Azure Container Service Engine (acs-engine) generates ARM (Azure Resource Manager) templates for Docker enabled clusters on Microsoft Azure with your choice of DC/OS, Kubernetes, Swarm Mode, or Swarm orchestrators. The input to the tool is a cluster definition. The cluster definition is very similar to (in many cases the same as) the ARM template syntax used to deploy a Microsoft Azure Container Service cluster. |
Barracuda Web Application Firewall with Backend IIS Servers |
This Azure quickstart template deploys a Barracuda Web Application Firewall Solution on Azure with required number of backend Windows 2012 based IIS Web Servers.Templates includes latest Barracuda WAF with Pay as you go license and latest Windows 2012 R2 Azure Image for IIS.The Barracuda Web Application Firewall inspects inbound web traffic and blocks SQL injections, Cross-Site Scripting, malware uploads & application DDoS and other attacks targeted at your web applications. One External LB is deployed with NAT rules to enable Remote desktop access to backend web servers. Please follow post deployment configuration guide available in GitHub template directory to learn more about post deployment steps related to Barracuda web application firewall and web applications publishing. |
Basic RDS farm deployment |
This template creates a basic RDS farm deployment |
CentOS/UbuntuServer Auto Dynamic Disks & Docker 1.12(cs) |
This is a common template for creating single instance CentOS 7.2/7.1/6.5 or Ubuntu Server 16.04.0-LTS with configurable number of data disks (configurable sizes). Maximum 16 disks can be mentioned in the portal parameters and maximum size of each disk should be less than 1023 GB. The MDADM RAID0 Array is automounted and survives restarts. Latest Docker 1.12(cs3) (Swarm), docker-compose 1.9.0 & docker-machine 0.8.2 is available for usage from user azure-cli is auto running as a docker container. This single instance template is an offshoot of the HPC/GPU Clusters Template @ https://github.com/azurebigcompute/BigComputeBench |
Chef Backend High-Availability Cluster |
This template creates a chef-backend cluster with front-end nodes attached |
Create 2 VMs in LB and a SQL Server VM with NSG |
This template creates 2 Windows VMs (that can be used as web FE) with in an Availability Set and a Load Balancer with port 80 open. The two VMs can be reached using RDP on port 6001 and 6002. This template also create a SQL Server 2014 VM that can be reached via RDP connection defined in a Network Security Group. |
Create 2 VMs Linux with LB and SQL Server VM with SSD |
This template creates 2 Linux VMs (that can be used as web FE) with in an Availability Set and a Load Balancer with port 80 open. The two VMs can be reached using SSH on port 6001 and 6002. This template also create a SQL Server 2014 VM that can be reached via RDP connection defined in a Network Security Group. All VMs storage can use Premium Storage (SSD) and you can choose to creare VMs with all DS sizes |
Create a load-balancer with a Public IPv6 address |
This template creates an Internet-facing load-balancer with a Public IPv6 address, load balancing rules, and two VMs for the backend pool. |
Create an Availability Set with 3 Fault Domains |
This template creates an Availability Set with 3 Fault Domains |
Create an Azure VM with a new Active Directory Forest |
This template creates a new Azure VM, it configures the VM to be an Active Directory Domain Controller for a new forest |
Create an Azure VM with a new AD Forest |
This template creates a new Azure VM, it configures the VM to be an AD DC for a new Forest |
Create an new AD Domain with 2 Domain Controllers |
This template creates 2 new VMs to be AD DCs (primary and backup) for a new Forest and Domain |
Create an Ubuntu GNOME desktop |
This template creates an ubuntu desktop machine. This works great for use as a jumpbox behind a NAT. |
Create new Active Directory forest with optional subdomain |
This template creates a new Active Directory forest, with an optional subdomain. You can choose to have either one or two DCs per domain. The network configuration is highly configurable, making it suitable to fit into an existing environment. The VMs use managed disks and have no dependency on storage accounts. As an operating system you can choose between Windows Server 2016 and Windows Server 2019. This template illustrates the use of nested templates, Powershell DSC, and other advanced concepts. |
Create VMs in Availability Sets using Resource Loops |
Create 2-5 VMs in Availability Sets using Resource Loops. The VMs can be Unbuntu or Windows with a maximum of 5 VMs since this sample uses a single storageAccount |
Deploy IOMAD cluster on Ubuntu |
This template deploys IOMAD as a LAMP application on Ubuntu. It creates a one or more Ubuntu VM for the front end and a single VM for the backend. It does a silent install of Apache and PHP on the front end VM's and MySQL on the backend VM. Then it deploys IOMAD on the cluster. It configures a load balancer for directing requests to the front end VM's. It also configures NAT rules to allow admin access to each of the VM's. It also sets up a moodledata data directory using file storage shared among the VM's. After the deployment is successful, you can go to /iomad on each frontend VM (using web admin access) to start configuring IOMAD. |
Deploy Open edX Dogwood (Multi-VM) |
This template creates a network of Ubuntu VMs, and deploys Open edX Dogwood on them. Deployment supports 1-9 application VMs and backend Mongo and MySQL VMs. |
Deploy OpenLDAP cluster on Ubuntu |
This template deploys an OpenLDAP cluster on Ubuntu. It creates multiple Ubuntu VMs (up to 5, but can be easily increased) and does a silent install of OpenLDAP on them. Then it sets up N-way multi-master replication on them. After the deployment is successful, you can go to /phpldapadmin to start congfiguring OpenLDAP. |
Deploy OpenSIS Community Edition cluster on Ubuntu |
This template deploys OpenSIS Community Edition as a LAMP application on Ubuntu. It creates a one or more Ubuntu VM for the front end and a single VM for the backend. It does a silent install of Apache and PHP on the front end VM's and MySQL on the backend VM. Then it deploys OpenSIS Community Edition on the cluster. After the deployment is successful, you can go to /opensis-ce on each of the front end VM's (using web admin access) to start congfiguring OpenSIS. |
Deploy Shibboleth Identity Provider cluster on Ubuntu |
This template deploys Shibboleth Identity Provider on Ubuntu in a clustered configuration. After the deployment is successful, you can go to https://your-domain:8443/idp/profile/Status (note port number) to check success. |
Deploy Shibboleth Identity Provider cluster on Windows |
This template deploys Shibboleth Identity Provider on Windows in a clustered configuration. After the deployment is successful, you can go to https://your-domain:8443/idp/profile/status (note port number) to check success. |
Deploy Solace PubSub+ message broker onto Azure Linux VM(s) |
This template allows you to deploy either a standalone Solace PubSub+ message broker or a three node High Availability cluster of Solace PubSub+ message brokers onto Azure Linux VM(s). |
Deploys a 2 node master/slave MySQL replication cluster |
This template deploys a 2 node master/slave MySQL replication cluster on CentOS 6.5 or 6.6 |
Deploys a 3 node Consul Cluster |
This template deploys a 3 node Consul cluster and auto-joins the nodes via Atlas. Consul is a tool for service discovery, distributed key/value store and a bunch of other cool things. Atlas is provided by Hashicorp (makers of Consul) as a way to quickly create Consul clusters without having to manually join each node |
Deploys a 3 node Percona XtraDB Cluster |
This template deploys a 3 node MySQL high availability cluster on CentOS 6.5 or Ubuntu 12.04 |
Deploys a N-node CentOS Cluster |
This template deploys a 2-10 node CentOS cluster with 2 networks. |
Deploys SQL Server 2014 AG on existing VNET & AD |
This template creates three new Azure VMs on an existing VNET: Two VMs are configured as SQL Server 2014 availability group replica nodes and one VM is configured as a File Share Witness for automated cluster failover. In addition to these VMs, the following additional Azure resources are also configured: Internal load balancer, Storage accounts. To configure clustering, SQL Server, and an availability group within each VM, PowerShell DSC is leveraged. For Active Directory support, existing Active Directory domain controllers should already be deployed on the existing VNET. |
Deploys Windows VMs under LB,configures WinRM Https |
This template allows you to deploys Windows VMs using few different options for the Windows version. This template also configures a WinRM https listener on VMs |
Discover Private IP dynamically |
This template allows you to discover a private IP for a NIC dynamically. It passes the private IP of NIC0 to VM1 using custom script extensions which writes it to a file on VM1. |
DNS Forwarder VM |
This template shows how to create a DNS server that forwards queries to Azure's internal DNS servers. This is useful for setting up DNS resultion between virtual networks (as described in https://azure.microsoft.com/documentation/articles/virtual-networks-name-resolution-for-vms-and-role-instances/). |
Docker Swarm Cluster |
This template creates a high-availability Docker Swarm cluster |
Example Parameterized Deployment With Linked Templates |
This sample template will deploy multiple tiers of resources into an Azure Resource Group. Each tier has configurable elements, to show how you can expose parameterization to the end user. |
GlassFish on SUSE |
This template deploys a load balanced GlassFish (v3 or v4) cluster, consisting of a user defined number of SUSE (OpenSUSE or SLES) VMs. |
IIS VMs & SQL Server 2014 VM |
Create 1 or 2 IIS Windows 2012 R2 Web Servers and one back end SQL Server 2014 in VNET. |
Install Elasticsearch cluster on a Virtual Machine Scale Set |
This template deploys an Elasticsearch cluster on a Virtual Machine scale set. The template provisions 3 dedicated master nodes, with an optional number of data nodes, which run on managed disks. |
Install Multiple Visual Studio Team Services (VSTS) Agents |
This template builds a Virtual Machine and supporting Resources with Visual Studio 2017 installed. It also installs and configures upto 4 VSTS build agents and links them to a VSTS Pool |
Intel Lustre clients using CentOS gallery image |
This template creates multiple Intel Lustre 2.7 client virtual machines using Azure gallery OpenLogic CentOS 6.6 or 7.0 images and mounts an existing Intel Lustre filesystem |
IPv6 in Azure Virtual Network (VNET) |
Create a dual stack IPv4/IPv6 VNET with 2 VMs. |
IPv6 in Azure Virtual Network (VNET) with Std LB |
Create a dual stack IPv4/IPv6 VNET with 2 VMs and an Internet-facing Standard Load Balancer. |
JBoss EAP on RHEL (clustered, multi-VM) |
This template allows you to create multiple RHEL 8.6 VMs running JBoss EAP 7.4 cluster and also deploys a web application called eap-session-replication, you can log into the admin console using the JBoss EAP username and password configured at the time of the deployment. |
KEMP LoadMaster HA Pair |
This template deploys a KEMP LoadMaster HA Pair |
Lustre HPC client and server nodes |
This template creates Lustre client and server node VMs and related infrastructure such as VNETs |
Multi tier App with NSG, ILB, AppGateway |
This template deploys a Virtual Network, segregates the network through subnets, deploys VMs and configures load balancing |
Multi tier traffic manager, L4 ILB, L7 AppGateway |
This template deploys a Virtual Network, segregates the network through subnets, deploys VMs and configures load balancing |
Multi VM Template with Managed Disk |
This template will create N number of VM's with managed disks, public IPs and network interfaces. It will create the VMs in a single Availability Set. They will be provisioned in a Virtual Network which will also be created as part of the deployment |
Multiple VM Template with Chef Extension |
Deploys a specified number of Ubuntu VMs configured with Chef Client |
RDS farm deployment using existing active directory |
This template creates a RDS farm deployment using existing active directory in same resource group |
RDS Gateway High Availability deployment |
This template provides high availability to RD Gateway and RD Web Access servers in an existing RDS deployment |
Red Hat Linux 3-Tier Solution on Azure |
This template allows you to deploy a 3 Tier architecture using 'Red Hat Enterprise Linux 7.3' virtual machines. Architecture includes Virtual Network, external and internal load balancers, Jump VM, NSGs etc along with multiple RHEL Virtual machines in each tier |
Redundant haproxy with Azure load-balancer and floating IP |
This template creates a redundant haproxy setup with 2 Ubuntu VMs configured behind Azure load balancer with floating IP enabled. Each of the Ubuntu VMs run haproxy to load balance requests to other application VMs (running Apache in this case). Keepalived enables redundancy for the haproxy VMs by assigning the floating IP to the MASTER and blocking the load-balancer probe on the BACKUP. This template also deploys a Storage Account, Virtual Network, Public IP address, Network Interfaces. |
SAP NetWeaver 3-tier (custom managed image) |
This template allows you to deploy a VM using a operating system that is supported by SAP using Managed Disks. |
SAP NetWeaver 3-tier (managed disk) |
This template allows you to deploy a VM using a operating system that is supported by SAP and Managed Disks. |
SAP NetWeaver 3-tier converged (managed disk) |
This template allows you to deploy a VM using a operating system and Managed Disks that is supported by SAP. |
SAP NetWeaver 3-tier converged (managed image) |
This template allows you to deploy a VM using a operating system that is supported by SAP. |
SAP NetWeaver 3-tier multi SID (A)SCS (managed disks) |
This template allows you to deploy a VM using a operating system that is supported by SAP. |
SAP NetWeaver 3-tier multi SID AS (managed disks) |
This template allows you to deploy a VM using a operating system that is supported by SAP. |
SAP NetWeaver 3-tier multi SID DB (managed disks) |
This template allows you to deploy a VM using a operating system that is supported by SAP. |
SAP NetWeaver file server (managed disk) |
This template allows you to deploy a file server that can be used as shared storage for SAP NetWeaver. |
Use Azure Firewall as a DNS Proxy in a Hub & Spoke topology |
This sample show how to deploy a hub-spoke topology in Azure using the Azure Firewall. The hub virtual network acts as a central point of connectivity to many spoke virtual networks that are connected to hub virtual network via virtual network peering. |
Zookeeper cluster on Ubuntu VMs |
This template creates a 'n' node Zookeper cluster on Ubuntu VMs. Use the scaleNumber parameter to specify the number of nodes in this cluster |
Terraform (AzAPI provider) resource definition
The availabilitySets resource type can be deployed with operations that target:
- Resource groups
For a list of changed properties in each API version, see change log.
Resource format
To create a Microsoft.Compute/availabilitySets resource, add the following Terraform to your template.
resource "azapi_resource" "symbolicname" {
type = "Microsoft.Compute/availabilitySets@2020-06-01"
name = "string"
location = "string"
sku = {
capacity = int
name = "string"
tier = "string"
}
tags = {
{customized property} = "string"
}
body = jsonencode({
properties = {
platformFaultDomainCount = int
platformUpdateDomainCount = int
proximityPlacementGroup = {
id = "string"
}
virtualMachines = [
{
id = "string"
}
]
}
})
}
Property values
AvailabilitySetProperties
Name | Description | Value |
---|---|---|
platformFaultDomainCount | Fault Domain count. | int |
platformUpdateDomainCount | Update Domain count. | int |
proximityPlacementGroup | Specifies information about the proximity placement group that the availability set should be assigned to. Minimum api-version: 2018-04-01. |
SubResource |
virtualMachines | A list of references to all virtual machines in the availability set. | SubResource[] |
Microsoft.Compute/availabilitySets
Name | Description | Value |
---|---|---|
location | Resource location | string (required) |
name | The resource name | string (required) |
properties | The instance view of a resource. | AvailabilitySetProperties |
sku | Sku of the availability set, only name is required to be set. See AvailabilitySetSkuTypes for possible set of values. Use 'Aligned' for virtual machines with managed disks and 'Classic' for virtual machines with unmanaged disks. Default value is 'Classic'. | Sku |
tags | Resource tags | Dictionary of tag names and values. |
type | The resource type | "Microsoft.Compute/availabilitySets@2020-06-01" |
ResourceTags
Name | Description | Value |
---|
Sku
Name | Description | Value |
---|---|---|
capacity | Specifies the number of virtual machines in the scale set. | int |
name | The sku name. | string |
tier | Specifies the tier of virtual machines in a scale set. Possible Values: Standard Basic |
string |
SubResource
Name | Description | Value |
---|---|---|
id | Resource Id | string |