title: Adding Availability Set To Azure Virtual Machine Template Creation
body: <p>I can create a Azure VM with a specific VHD from the template below but how do I also add it to an Availability Set.  I can't do this after VM creation so I need to do it here.</p>
  
  <pre><code>{
      "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
      "contentVersion": "1.0.0.0",
      "parameters": {
          "location": {
              "type": "string",
              "metadata": {
                  "description": "Location to create the VM in"
              }
          },
          "osDiskVhdUri": {
              "type": "string",
              "metadata": {
                  "description": "Uri of the existing VHD"
              }
          },
          "osType": {
              "type": "string",
              "allowedValues": [
                  "Windows",
                  "Linux"
              ],
              "metadata": {
                  "description": "Type of OS on the existing vhd"
              }
          },
          "vmSize": {
              "type": "string",
              "defaultValue": "Standard_D2",
              "metadata": {
                  "description": "Size of the VM"
              }
          },
          "vmName": {
              "type": "string",
              "metadata": {
                  "description": "Name of the VM"
              }
          }
      },
      "variables": {
          "api-version": "2015-06-15",
          "addressPrefix": "10.0.0.0/16",
          "subnetName": "Subnet",
          "subnetPrefix": "10.0.0.0/24",
          "publicIPAddressName": "specializedVMPublicIP",
          "publicIPAddressType": "Dynamic",
          "virtualNetworkName": "specializedVMVNET",
          "vnetID": "[resourceId('Microsoft.Network/virtualNetworks',variables('virtualNetworkName'))]",
          "subnetRef": "[concat(variables('vnetID'),'/subnets/',variables('subnetName'))]",
          "nicName": "specializedVMNic"
      },
      "resources": [
          {
              "apiVersion": "[variables('api-version')]",
              "type": "Microsoft.Network/virtualNetworks",
              "name": "[variables('virtualNetworkName')]",
              "location": "[parameters('location')]",
              "properties": {
                  "addressSpace": {
                      "addressPrefixes": [
                          "[variables('addressPrefix')]"
                      ]
                  },
                  "subnets": [
                      {
                          "name": "[variables('subnetName')]",
                          "properties": {
                              "addressPrefix": "[variables('subnetPrefix')]"
                          }
                      }
                  ]
              }
          },
          {
              "apiVersion": "[variables('api-version')]",
              "type": "Microsoft.Network/networkInterfaces",
              "name": "[variables('nicName')]",
              "location": "[parameters('location')]",
              "dependsOn": [
                  "[concat('Microsoft.Network/publicIPAddresses/', variables('publicIPAddressName'))]",
                  "[concat('Microsoft.Network/virtualNetworks/', variables('virtualNetworkName'))]"
              ],
              "properties": {
                  "ipConfigurations": [
                      {
                          "name": "ipconfig1",
                          "properties": {
                              "privateIPAllocationMethod": "Dynamic",
                              "publicIPAddress": {
                                  "id": "[resourceId('Microsoft.Network/publicIPAddresses',variables('publicIPAddressName'))]"
                              },
                              "subnet": {
                                  "id": "[variables('subnetRef')]"
                              }
                          }
                      }
                  ]
              }
          },
          {
              "apiVersion": "[variables('api-version')]",
              "type": "Microsoft.Network/publicIPAddresses",
              "name": "[variables('publicIPAddressName')]",
              "location": "[parameters('location')]",
              "properties": {
                  "publicIPAllocationMethod": "[variables('publicIPAddressType')]"
              }
          },
          {
              "apiVersion": "[variables('api-version')]",
              "type": "Microsoft.Compute/virtualMachines",
              "name": "[parameters('vmName')]",
              "location": "[parameters('location')]",
              "dependsOn": [
                  "[concat('Microsoft.Network/networkInterfaces/', variables('nicName'))]"
              ],
              "properties": {
                  "hardwareProfile": {
                      "vmSize": "[parameters('vmSize')]"
                  },
                  "storageProfile": {
                      "osDisk": {
                          "name": "[concat(parameters('vmName'),'-osDisk')]",
                          "osType": "[parameters('osType')]",
                          "caching": "ReadWrite",
                          "vhd": {
                              "uri": "[parameters('osDiskVhdUri')]"
                          },
                          "createOption": "Attach"
                      }
                  },
                  "networkProfile": {
                      "networkInterfaces": [
                          {
                              "id": "[resourceId('Microsoft.Network/networkInterfaces', variables('nicName'))]"
                          }
                      ]
                  }
              }
          }
      ]
  }
  </code></pre>