SQL Server 2016 AlwaysOn with Managed Disks in Availability Zones

Last updated: 17-09-2017

This template creates Azure VMs on an existing VNET, and provisions a SQL Server 2016 AlwaysOn Availability Group cluster across Availability Zones

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.

Parameters

Parameter Name Description
location Location for the VM, only certain regions support zones during preview.
namePrefix Naming prefix for each new resource created. 3-char min, 8-char max, lowercase alphanumeric
vmSize Size of the SQL Server VMs to be created
vmCount Number of SQL Server VMs to be created in AlwaysOn Availability Group cluster (Min=2, Max=9)
vmDiskSize Size of each data disk in GB on each SQL Server VM (Min=128, Max=1023)
vmDiskCount Number of data disks on each SQL Server VM (Min=2, Max=32). Ensure that the VM size you've selected will support this number of data disks.
existingDomainName DNS domain name for existing Active Directory domain
adminUsername Name of the Administrator of the existing Active Directory Domain
adminPassword Password for the Administrator account of the existing Active Directory Domain
sqlServiceAccount Name of the user account to be used for the SQL Server service account
sqlServicePassword Password to be used for the SQL Server service account
existingVirtualNetworkRGName Resource Group Name for the existing VNET.
existingVirtualNetworkName Name of the existing VNET.
existingSubnetNames Name of the existing subnets in the existing VNET to which the SQL Server VMs should be deployed
workloadType SQL DB workload type: GENERAL - General workload; DW - Data Warehouse workload; OLTP - Transactional Processing workload
_artifactsLocation Location of resources that the script is dependent on such as linked templates and DSC modules
_artifactsLocationSasToken The sasToken required to access _artifactsLocation. When the template is deployed using the accompanying scripts, a sasToken will be automatically generated.

Use the template

PowerShell

New-AzureRmResourceGroupDeployment -Name <deployment-name> -ResourceGroupName <resource-group-name> -TemplateUri https://raw.githubusercontent.com/azure/azure-quickstart-templates/master/sql-alwayson-md-mult-subnets-zones/azuredeploy.json
Install and configure Azure PowerShell

Command line

azure config mode arm
azure group deployment create <my-resource-group> <my-deployment-name> --template-uri https://raw.githubusercontent.com/azure/azure-quickstart-templates/master/sql-alwayson-md-mult-subnets-zones/azuredeploy.json
Install and Configure the Azure Cross-Platform Command-Line Interface