{ "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", "contentVersion": "1.0.0.0", "parameters": { "virtualMachineAdminUserName": { "defaultValue": "azadmin", "type": "string", "metadata": { "description": "Administrator Username for the local admin account" } }, "virtualMachineAdminPassword": { "type": "securestring", "metadata": { "description": "Administrator password for the local admin account" } }, "virtualMachineNamePrefix": { "defaultValue": "MyVM0", "type": "string", "maxLength": 15, "metadata": { "description": "Name of the virtual machine to be created" } }, "virtualMachineCount": { "type": "int", "defaultValue": 3, "metadata": { "description": "Number of virtual machines to be created" } }, "virtualMachineSize": { "type": "string", "defaultValue": "Standard_DS2_v2", "allowedValues": [ "Standard_DS1_v2", "Standard_DS2_v2", "Standard_DS3_v2", "Standard_DS4_v2", "Standard_DS5_v2" ], "metadata": { "description": "Virtual Machine Size" } }, "imagerefid": { "type": "string", "metadata": { "description": "Name of the Image" } }, "dnsPrefixForPublicIP": { "type": "string", "minLength": 1, "maxLength": 14, "defaultValue": "[uniqueString(resourceGroup().id)]", "metadata": { "description": "Globally unique DNS prefix for the Public IPs used to access the Virtual Machines" } }, "location": { "type": "string", "defaultValue": "[resourceGroup().location]", "metadata": { "description": "Location for all resources." } } }, "variables": { "myVNETName": "myVNET", "myVNETPrefix": "10.0.0.0/16", "myVNETSubnet1Name": "Subnet1", "myVNETSubnet1Prefix": "10.0.0.0/24", "diagnosticStorageAccountName": "[concat('diagst', uniqueString(resourceGroup().id))]", "operatingSystemValues": { "Server2012R2": { "PublisherValue": "MicrosoftWindowsServer", "OfferValue": "WindowsServer", "SkuValue": "2012-R2-Datacenter" }, "Server2016": { "PublisherValue": "MicrosoftWindowsServer", "OfferValue": "WindowsServer", "SkuValue": "2016-Datacenter" }, "Server2019": { "PublisherValue": "MicrosoftWindowsServer", "OfferValue": "WindowsServer", "SkuValue": "2019-Datacenter" } }, "subnetRef": "[resourceId('Microsoft.Network/virtualNetworks/subnets', variables('myVNETName'), variables('myVNETSubnet1Name'))]", "networkSecurityGroupName": "default-NSG" }, "resources": [ { "comments": "Default Network Security Group for template", "type": "Microsoft.Network/networkSecurityGroups", "apiVersion": "2020-05-01", "name": "[variables('networkSecurityGroupName')]", "location": "[parameters('location')]", "properties": { "securityRules": [ { "name": "default-allow-3389", "properties": { "priority": 1000, "access": "Allow", "direction": "Inbound", "destinationPortRange": "3389", "protocol": "Tcp", "sourceAddressPrefix": "*", "sourcePortRange": "*", "destinationAddressPrefix": "*" } } ] } }, { "name": "[variables('myVNETName')]", "type": "Microsoft.Network/virtualNetworks", "location": "[parameters('location')]", "apiVersion": "2020-05-01", "dependsOn": [ "[resourceId('Microsoft.Network/networkSecurityGroups', variables('networkSecurityGroupName'))]" ], "tags": { "displayName": "[variables('myVNETName')]" }, "properties": { "addressSpace": { "addressPrefixes": [ "[variables('myVNETPrefix')]" ] }, "subnets": [ { "name": "[variables('myVNETSubnet1Name')]", "properties": { "addressPrefix": "[variables('myVNETSubnet1Prefix')]", "networkSecurityGroup": { "id": "[resourceId('Microsoft.Network/networkSecurityGroups', variables('networkSecurityGroupName'))]" } } } ] } }, { "name": "[variables('diagnosticStorageAccountName')]", "type": "Microsoft.Storage/storageAccounts", "location": "[parameters('location')]", "apiVersion": "2019-06-01", "sku": { "name": "Standard_LRS" }, "tags": { "displayName": "diagnosticStorageAccount" }, "kind": "StorageV2" }, { "type": "Microsoft.Compute/virtualMachines", "name": "[concat(parameters('virtualMachineNamePrefix'), copyIndex(1))]", "apiVersion": "2020-06-01", "location": "[parameters('location')]", "copy": { "name": "VMcopy", "count": "[parameters('virtualMachineCount')]" }, "properties": { "hardwareProfile": { "vmSize": "[parameters('virtualMachineSize')]" }, "storageProfile": { "imageReference": { "id": "[parameters('imagerefid')]" }, "osDisk": { "name": "[concat(parameters('virtualMachineNamePrefix'),copyIndex(1))]", "createOption": "FromImage", "managedDisk": { "storageAccountType": "Premium_LRS" }, "caching": "ReadWrite" } }, "osProfile": { "computerName": "[concat(parameters('virtualMachineNamePrefix'),copyIndex(1))]", "adminUsername": "[parameters('virtualMachineAdminUserName')]", "windowsConfiguration": { "provisionVMAgent": true }, "adminPassword": "[parameters('virtualMachineAdminPassword')]" }, "networkProfile": { "networkInterfaces": [ { "id": "[resourceId('Microsoft.Network/networkInterfaces', concat(parameters('virtualMachineNamePrefix'), copyIndex(1), '-NIC1'))]" } ] }, "diagnosticsProfile": { "bootDiagnostics": { "enabled": true, "storageUri": "[reference(resourceId('Microsoft.Storage/storageAccounts', variables('diagnosticStorageAccountName')), '2016-01-01').primaryEndpoints.blob]" } } }, "dependsOn": [ "[resourceId('Microsoft.Storage/storageAccounts/', variables('diagnosticStorageAccountName'))]", "[resourceId('Microsoft.Network/networkInterfaces', concat(parameters('virtualMachineNamePrefix'), copyIndex(1), '-NIC1'))]" ] }, { "type": "Microsoft.Network/networkInterfaces", "name": "[concat(parameters('virtualMachineNamePrefix'), copyIndex(1), '-NIC1')]", "apiVersion": "2020-05-01", "location": "[parameters('location')]", "copy": { "name": "NICCopy", "count": "[parameters('virtualMachineCount')]" }, "properties": { "ipConfigurations": [ { "name": "ipconfig1", "properties": { "privateIPAllocationMethod": "Dynamic", "publicIPAddress": { "id": "[resourceId('Microsoft.Network/publicIPAddresses', concat(parameters('virtualMachineNamePrefix'), copyIndex(1), '-PIP1'))]" }, "subnet": { "id": "[variables('subnetRef')]" } } } ], "enableIPForwarding": false }, "dependsOn": [ "[resourceId('Microsoft.Network/publicIPAddresses', concat(parameters('virtualMachineNamePrefix'), copyIndex(1), '-PIP1'))]", "[resourceId('Microsoft.Network/virtualNetworks/', variables('myVNETName'))]" ] }, { "apiVersion": "2020-05-01", "type": "Microsoft.Network/publicIPAddresses", "name": "[concat(parameters('virtualMachineNamePrefix'), copyIndex(1), '-PIP1')]", "location": "[parameters('location')]", "copy": { "name": "PIPCopy", "count": "[parameters('virtualMachineCount')]" }, "tags": { "displayName": "[concat(parameters('virtualMachineNamePrefix'), copyIndex(1), '-PIP1')]" }, "properties": { "publicIPAllocationMethod": "Dynamic", "dnsSettings": { "domainNameLabel": "[concat(parameters('dnsPrefixForPublicIP'), copyIndex(1))]" } } } ], "outputs": {} }