{ "$schema": "http://schema.management.azure.com/schemas/2014-04-01-preview/deploymentTemplate.json", "contentVersion": "1.0.0.0", "parameters": { "adminPassword": { "type": "string" }, "adminUsername": { "type": "string" }, "dnsNameForPublicIP": { "type": "string" }, "nicName": { "type": "string" }, "osDiskName": { "type": "string" }, "publicIPAddressName": { "type": "string" }, "storageAccountBlobEndpoint": { "type": "string" }, "subnetName": { "type": "string" }, "virtualNetworkName": { "type": "string" }, "vmName": { "type": "string" }, "vmSize": { "type": "string" } }, "resources": [ { "apiVersion": "[variables('publicIPAddressApiVersion')]", "location": "[variables('location')]", "name": "[parameters('publicIPAddressName')]", "properties": { "dnsSettings": { "domainNameLabel": "[parameters('dnsNameForPublicIP')]" }, "publicIPAllocationMethod": "[variables('publicIPAddressType')]" }, "type": "Microsoft.Network/publicIPAddresses" }, { "apiVersion": "[variables('virtualNetworksApiVersion')]", "location": "[variables('location')]", "name": "[variables('virtualNetworkName')]", "properties": { "addressSpace": { "addressPrefixes": [ "[variables('addressPrefix')]" ] }, "subnets": [ { "name": "[variables('subnetName')]", "properties": { "addressPrefix": "[variables('subnetAddressPrefix')]" } } ] }, "type": "Microsoft.Network/virtualNetworks" }, { "apiVersion": "[variables('networkInterfacesApiVersion')]", "dependsOn": [ "[concat('Microsoft.Network/publicIPAddresses/', parameters('publicIPAddressName'))]", "[concat('Microsoft.Network/virtualNetworks/', variables('virtualNetworkName'))]" ], "location": "[variables('location')]", "name": "[parameters('nicName')]", "properties": { "ipConfigurations": [ { "name": "ipconfig", "properties": { "privateIPAllocationMethod": "Dynamic", "publicIPAddress": { "id": "[resourceId('Microsoft.Network/publicIPAddresses', parameters('publicIPAddressName'))]" }, "subnet": { "id": "[variables('subnetRef')]" } } } ] }, "type": "Microsoft.Network/networkInterfaces" }, { "apiVersion": "[variables('apiVersion')]", "dependsOn": [ "[concat('Microsoft.Network/networkInterfaces/', parameters('nicName'))]" ], "location": "[variables('location')]", "name": "[parameters('vmName')]", "properties": { "diagnosticsProfile": { "bootDiagnostics": { "enabled": false } }, "hardwareProfile": { "vmSize": "[parameters('vmSize')]" }, "networkProfile": { "networkInterfaces": [ { "id": "[resourceId('Microsoft.Network/networkInterfaces', parameters('nicName'))]" } ] }, "osProfile": { "adminPassword": "[parameters('adminPassword')]", "adminUsername": "[parameters('adminUsername')]", "computerName": "[parameters('vmName')]", "customData": "I2Nsb3VkLWNvbmZpZwpncm93cGFydDoKICBtb2RlOiBvZmYK", "linuxConfiguration": { "ssh": { "publicKeys": [ { "keyData": "", "path": "[variables('sshKeyPath')]" } ] } } }, "storageProfile": { "osDisk": { "caching": "ReadWrite", "createOption": "FromImage", "image": { "uri": "https://localhost/custom.vhd" }, "name": "[parameters('osDiskName')]", "osType": "Linux", "vhd": { "uri": "[concat(parameters('storageAccountBlobEndpoint'),variables('vmStorageAccountContainerName'),'/', parameters('osDiskName'),'.vhd')]" } } } }, "type": "Microsoft.Compute/virtualMachines" } ], "variables": { "addressPrefix": "10.0.0.0/16", "apiVersion": "2017-03-30", "location": "[resourceGroup().location]", "managedDiskApiVersion": "2017-03-30", "networkInterfacesApiVersion": "2017-04-01", "publicIPAddressApiVersion": "2017-04-01", "publicIPAddressType": "Dynamic", "sshKeyPath": "[concat('/home/',parameters('adminUsername'),'/.ssh/authorized_keys')]", "subnetAddressPrefix": "10.0.0.0/24", "subnetName": "[parameters('subnetName')]", "subnetRef": "[concat(variables('vnetID'),'/subnets/',variables('subnetName'))]", "virtualNetworkName": "[parameters('virtualNetworkName')]", "virtualNetworkResourceGroup": "[resourceGroup().name]", "virtualNetworksApiVersion": "2017-04-01", "vmStorageAccountContainerName": "images", "vnetID": "[resourceId(variables('virtualNetworkResourceGroup'), 'Microsoft.Network/virtualNetworks', variables('virtualNetworkName'))]" } }