{ "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#", "contentVersion": "1.0.0.0", "parameters": { "adminUsername": { "type": "string", "metadata": { "description": "Username for the Virtual Machine." } }, "adminPassword": { "type": "securestring", "metadata": { "description": "Password for the Virtual Machine." } }, "numberOfInstances": { "type": "string", "metadata": { "description": "Number of VMs to deploy." } }, "vmName": { "type": "string", "metadata": { "description": "Name Prefix for the Virtual Machine." } }, "vmSize": { "type": "string", "defaultValue": "Standard_DS2_v2", "allowedValues": [ "Basic_A3", "Standard_DS2_v2", "Standard_A4", "Standard_A5", "Standard_A6", "Standard_A7", "Standard_A8", "Standard_A9", "Standard_A10", "Standard_A11", "Standard_D3_v2", "Standard_D4_v2", "Standard_DS3_v2", "Standard_DS4_v2", "Standard_D12_v2", "Standard_D13_v2", "Standard_D14_v2" ], "metadata": { "description": "Size for the Virtual Machine." } } }, "variables": { "location": "[resourceGroup().location]", "numberOfInstances": "[int(parameters('numberOfInstances'))]", "imagePublisher": "microsoft-ads", "imageOffer": "standard-data-science-vm", "OSDiskName": "osdiskforwindowssimple", "sku": "standard-data-science-vm", "nicName": "[parameters('vmName')]", "addressPrefix": "10.0.0.0/16", "subnetName": "Subnet", "subnetPrefix": "10.0.0.0/24", "storageAccountType": "Standard_LRS", "storageAccountName": "[concat(uniquestring(resourceGroup().id), 'windsvm')]", "publicIPAddressType": "Dynamic", "publicIPAddressName": "[parameters('vmName')]", "vmStorageAccountContainerName": "vhds", "vmName": "[parameters('vmName')]", "vmSize": "[parameters('vmSize')]", "virtualNetworkName": "[parameters('vmName')]", "vnetID": "[resourceId('Microsoft.Network/virtualNetworks',variables('virtualNetworkName'))]", "subnetRef": "[concat(variables('vnetID'),'/subnets/',variables('subnetName'))]" }, "resources": [ { "type": "Microsoft.Storage/storageAccounts", "name": "[variables('storageAccountName')]", "apiVersion": "2015-05-01-preview", "location": "[variables('location')]", "properties": { "accountType": "[variables('storageAccountType')]" } }, { "apiVersion": "2015-05-01-preview", "type": "Microsoft.Network/publicIPAddresses", "name": "[concat(variables('publicIPAddressName'), copyindex())]", "location": "[variables('location')]", "copy": { "name": "publicIPLoop", "count": "[variables('numberOfInstances')]" }, "properties": { "publicIPAllocationMethod": "[variables('publicIPAddressType')]", "dnsSettings": { "domainNameLabel": "[concat(variables('publicIPAddressName'), copyindex())]" } } }, { "apiVersion": "2015-05-01-preview", "type": "Microsoft.Network/virtualNetworks", "name": "[variables('virtualNetworkName')]", "location": "[variables('location')]", "properties": { "addressSpace": { "addressPrefixes": [ "[variables('addressPrefix')]" ] }, "subnets": [ { "name": "[variables('subnetName')]", "properties": { "addressPrefix": "[variables('subnetPrefix')]" } } ] } }, { "apiVersion": "2015-05-01-preview", "type": "Microsoft.Network/networkInterfaces", "name": "[concat(variables('nicName'), copyindex())]", "location": "[variables('location')]", "copy": { "name": "nicLoop", "count": "[variables('numberOfInstances')]" }, "dependsOn": [ "[concat('Microsoft.Network/publicIPAddresses/', concat(variables('publicIPAddressName'),copyindex()))]", "[concat('Microsoft.Network/virtualNetworks/', variables('virtualNetworkName'))]" ], "properties": { "ipConfigurations": [ { "name": "ipconfig1", "properties": { "privateIPAllocationMethod": "Dynamic", "publicIPAddress": { "id": "[resourceId('Microsoft.Network/publicIPAddresses',concat(variables('publicIPAddressName'),copyindex()))]" }, "subnet": { "id": "[variables('subnetRef')]" } } } ] } }, { "apiVersion": "2015-06-15", "type": "Microsoft.Compute/virtualMachines", "name": "[concat(variables('vmName'), copyIndex())]", "location": "[variables('location')]", "copy": { "name": "virtualMachineLoop", "count": "[variables('numberOfInstances')]" }, "plan": { "name": "standard-data-science-vm", "publisher": "microsoft-ads", "product": "standard-data-science-vm" }, "tags": { "Application": "DataScience" }, "dependsOn": [ "[concat('Microsoft.Storage/storageAccounts/', variables('storageAccountName'))]", "[concat('Microsoft.Network/networkInterfaces/', variables('nicName'), copyindex())]" ], "properties": { "hardwareProfile": { "vmSize": "[variables('vmSize')]" }, "osProfile": { "computerName": "[concat(variables('vmName'), copyIndex())]", "adminUsername": "[parameters('adminUsername')]", "adminPassword": "[parameters('adminPassword')]" }, "storageProfile": { "imageReference": { "publisher": "[variables('imagePublisher')]", "offer": "[variables('imageOffer')]", "sku": "[variables('sku')]", "version": "latest" }, "osDisk": { "name": "osdisk", "vhd": { "uri": "[concat('http://',variables('storageAccountName'),'.blob.core.windows.net/',variables('vmStorageAccountContainerName'),'/',variables('OSDiskName'), variables('vmName'), copyIndex(), '.vhd')]" }, "caching": "ReadWrite", "createOption": "FromImage" } }, "networkProfile": { "networkInterfaces": [ { "id": "[resourceId('Microsoft.Network/networkInterfaces',concat(variables('nicName'), copyindex()))]" } ] }, "diagnosticsProfile": { "bootDiagnostics": { "enabled": "true", "storageUri": "[concat('http://',variables('storageAccountName'),'.blob.core.windows.net')]" } } } } ], "outputs": { "firstDataScienceVmUrl": { "type": "string", "value": "[concat('https://ms.portal.azure.com/#resource/subscriptions/', subscription().subscriptionId, '/resourceGroups/', resourceGroup().name, '/providers/Microsoft.Compute/virtualMachines/', variables('vmName'), '0')]" }, "numInstances": { "type": "string", "value": "[parameters('numberOfInstances')]" } } }