{ "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#", "contentVersion": "1.0.0.0", "parameters": { "vmSize": { "type": "string", "defaultValue": "Standard_D2s_v3", "metadata": { "description": "Virtual machine size" } }, "location1": { "type": "string", "metadata": { "description": "First Azure Region" } }, "location2": { "type": "string", "metadata": { "description": "Second Azure Region" } }, "adminUsername": { "type": "string", "metadata": { "description": "Admin username" } }, "adminPassword": { "type": "securestring", "metadata": { "description": "Admin password" } } }, "variables": { "locationNames": "[createArray(parameters('location1'),parameters('location1'),parameters('location2'))]", "vmName": "az104-05-vm", "nicName": "az104-05-nic", "subnetName": "subnet0", "VnetName": "az104-05-vnet", "pipName": "az104-05-pip", "nsgName": "az104-05-nsg", "computeApiVersion": "2018-06-01", "networkApiVersion": "2018-08-01" }, "resources": [ { "name": "[concat(variables('vmName'),copyIndex())]", "copy": { "name": "VMcopy", "count": "[length(variables('locationNames'))]" }, "type": "Microsoft.Compute/virtualMachines", "apiVersion": "[variables('computeApiVersion')]", "location": "[variables('locationNames')[copyIndex()]]", "dependsOn": [ "[concat(variables('nicName'),copyIndex())]" ], "properties": { "osProfile": { "computerName": "[concat(variables('vmName'),copyIndex())]", "adminUsername": "[parameters('adminUsername')]", "adminPassword": "[parameters('adminPassword')]", "windowsConfiguration": { "provisionVmAgent": "true" } }, "hardwareProfile": { "vmSize": "[parameters('vmSize')]" }, "storageProfile": { "imageReference": { "publisher": "MicrosoftWindowsServer", "offer": "WindowsServer", "sku": "2019-Datacenter", "version": "latest" }, "osDisk": { "createOption": "fromImage" }, "dataDisks": [] }, "networkProfile": { "networkInterfaces": [ { "properties": { "primary": true }, "id": "[resourceId('Microsoft.Network/networkInterfaces',concat(variables('nicName'),copyIndex()))]" } ] } } }, { "type": "Microsoft.Network/virtualNetworks", "name": "[concat(variables('VnetName'),copyIndex())]", "copy": { "name": "VNetCopy", "count": "[length(variables('locationNames'))]" }, "apiVersion": "[variables('networkApiVersion')]", "location": "[variables('locationNames')[copyIndex()]]", "comments": "Virtual Network", "properties": { "addressSpace": { "addressPrefixes": [ "[concat('10.5',copyIndex(),'.0.0/22')]" ] }, "subnets": [ { "name": "[variables('subnetName')]", "properties": { "addressPrefix": "[concat('10.5',copyIndex(),'.0.0/24')]" } } ] } }, { "name": "[concat(variables('nicName'),copyIndex())]", "copy": { "name": "nicCopy", "count": "[length(variables('locationNames'))]" }, "type": "Microsoft.Network/networkInterfaces", "apiVersion": "[variables('networkApiVersion')]", "location": "[variables('locationNames')[copyIndex()]]", "comments": "Primary NIC", "dependsOn": [ "[concat(variables('pipName'),copyIndex())]", "[concat(variables('nsgName'),copyIndex())]", "[concat(variables('VnetName'),copyIndex())]" ], "properties": { "ipConfigurations": [ { "name": "ipconfig1", "properties": { "subnet": { "id": "[resourceId('Microsoft.Network/virtualNetworks/subnets', concat(variables('VnetName'),copyIndex()), variables('subnetName'))]" }, "privateIPAllocationMethod": "Dynamic", "publicIpAddress": { "id": "[resourceId('Microsoft.Network/publicIpAddresses', concat(variables('pipName'),copyIndex()))]" } } } ], "networkSecurityGroup": { "id": "[resourceId('Microsoft.Network/networkSecurityGroups', concat(variables('nsgName'),copyIndex()))]" } } }, { "name": "[concat(variables('pipName'),copyIndex())]", "copy": { "name": "pipCopy", "count": "[length(variables('locationNames'))]" }, "type": "Microsoft.Network/publicIpAddresses", "apiVersion": "[variables('networkApiVersion')]", "location": "[variables('locationNames')[copyIndex()]]", "comments": "Public IP for Primary NIC", "properties": { "publicIpAllocationMethod": "Dynamic" } }, { "name": "[concat(variables('nsgName'),copyIndex())]", "copy": { "name": "nsgCopy", "count": "[length(variables('locationNames'))]" }, "type": "Microsoft.Network/networkSecurityGroups", "apiVersion": "[variables('networkApiVersion')]", "location": "[variables('locationNames')[copyIndex()]]", "comments": "Network Security Group (NSG) for Primary NIC", "properties": { "securityRules": [ { "name": "default-allow-rdp", "properties": { "priority": 1000, "sourceAddressPrefix": "*", "protocol": "Tcp", "destinationPortRange": "3389", "access": "Allow", "direction": "Inbound", "sourcePortRange": "*", "destinationAddressPrefix": "*" } } ] } } ], "outputs": {} }