Last active
April 13, 2017 18:29
-
-
Save rnkhouse/f03545de5b1edb5a67370c8069744c16 to your computer and use it in GitHub Desktop.
Create Virtual Machine over existing VNET on Azure.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#", | |
"contentVersion": "1.0.0.0", | |
"parameters": { | |
"location": { | |
"defaultValue": "eastus2", | |
"type": "String" | |
}, | |
"virtualMachineName": { | |
"type": "String" | |
}, | |
"virtualMachineSize": { | |
"type": "String" | |
}, | |
"adminUsername": { | |
"type": "String" | |
}, | |
"virtualNetworkName": { | |
"type": "String" | |
}, | |
"networkInterfaceName": { | |
"type": "String" | |
}, | |
"networkSecurityGroupName": { | |
"type": "String" | |
}, | |
"adminPublicKey": { | |
"type": "String" | |
}, | |
"availabilitySetName": { | |
"type": "String" | |
}, | |
"availabilitySetPlatformFaultDomainCount": { | |
"type": "String" | |
}, | |
"availabilitySetPlatformUpdateDomainCount": { | |
"type": "String" | |
}, | |
"storageAccountName": { | |
"type": "String" | |
}, | |
"storageAccountType": { | |
"type": "String" | |
}, | |
"diagnosticsStorageAccountName": { | |
"type": "String" | |
}, | |
"diagnosticsStorageAccountId": { | |
"type": "String" | |
}, | |
"diagnosticsStorageAccountType": { | |
"type": "String" | |
}, | |
"subnetName": { | |
"type": "String" | |
}, | |
"publicIpAddressName": { | |
"type": "String" | |
}, | |
"publicIpAddressType": { | |
"type": "String" | |
} | |
}, | |
"variables": { | |
"vnetId": "[resourceId(resourceGroup().name,'Microsoft.Network/virtualNetworks', parameters('virtualNetworkName'))]", | |
"subnetRef": "[concat(variables('vnetId'), '/subnets/', parameters('subnetName'))]", | |
"metricsresourceid": "[concat('/subscriptions/', subscription().subscriptionId, '/resourceGroups/', resourceGroup().name, '/providers/', 'Microsoft.Compute/virtualMachines/', parameters('virtualMachineName'))]", | |
"metricsclosing": "[concat('<Metrics resourceId=\"', variables('metricsresourceid'), '\"><MetricAggregation scheduledTransferPeriod=\"PT1H\"/><MetricAggregation scheduledTransferPeriod=\"PT1M\"/></Metrics></DiagnosticMonitorConfiguration></WadCfg>')]", | |
"metricscounters": "<PerformanceCounters scheduledTransferPeriod=\"PT1M\"><PerformanceCounterConfiguration counterSpecifier=\"\\Memory\\AvailableMemory\" sampleRate=\"PT15S\" unit=\"Bytes\"><annotation displayName=\"Memory available\" locale=\"en-us\"/></PerformanceCounterConfiguration><PerformanceCounterConfiguration counterSpecifier=\"\\Memory\\PercentAvailableMemory\" sampleRate=\"PT15S\" unit=\"Percent\"><annotation displayName=\"Mem. percent available\" locale=\"en-us\"/></PerformanceCounterConfiguration><PerformanceCounterConfiguration counterSpecifier=\"\\Memory\\UsedMemory\" sampleRate=\"PT15S\" unit=\"Bytes\"><annotation displayName=\"Memory used\" locale=\"en-us\"/></PerformanceCounterConfiguration><PerformanceCounterConfiguration counterSpecifier=\"\\Memory\\PercentUsedMemory\" sampleRate=\"PT15S\" unit=\"Percent\"><annotation displayName=\"Memory percentage\" locale=\"en-us\"/></PerformanceCounterConfiguration><PerformanceCounterConfiguration counterSpecifier=\"\\Memory\\PercentUsedByCache\" sampleRate=\"PT15S\" unit=\"Percent\"><annotation displayName=\"Mem. used by cache\" locale=\"en-us\"/></PerformanceCounterConfiguration><PerformanceCounterConfiguration counterSpecifier=\"\\Memory\\PagesPerSec\" sampleRate=\"PT15S\" unit=\"CountPerSecond\"><annotation displayName=\"Pages\" locale=\"en-us\"/></PerformanceCounterConfiguration><PerformanceCounterConfiguration counterSpecifier=\"\\Memory\\PagesReadPerSec\" sampleRate=\"PT15S\" unit=\"CountPerSecond\"><annotation displayName=\"Page reads\" locale=\"en-us\"/></PerformanceCounterConfiguration><PerformanceCounterConfiguration counterSpecifier=\"\\Memory\\PagesWrittenPerSec\" sampleRate=\"PT15S\" unit=\"CountPerSecond\"><annotation displayName=\"Page writes\" locale=\"en-us\"/></PerformanceCounterConfiguration><PerformanceCounterConfiguration counterSpecifier=\"\\Memory\\AvailableSwap\" sampleRate=\"PT15S\" unit=\"Bytes\"><annotation displayName=\"Swap available\" locale=\"en-us\"/></PerformanceCounterConfiguration><PerformanceCounterConfiguration counterSpecifier=\"\\Memory\\PercentAvailableSwap\" sampleRate=\"PT15S\" unit=\"Percent\"><annotation displayName=\"Swap percent available\" locale=\"en-us\"/></PerformanceCounterConfiguration><PerformanceCounterConfiguration counterSpecifier=\"\\Memory\\UsedSwap\" sampleRate=\"PT15S\" unit=\"Bytes\"><annotation displayName=\"Swap used\" locale=\"en-us\"/></PerformanceCounterConfiguration><PerformanceCounterConfiguration counterSpecifier=\"\\Memory\\PercentUsedSwap\" sampleRate=\"PT15S\" unit=\"Percent\"><annotation displayName=\"Swap percent used\" locale=\"en-us\"/></PerformanceCounterConfiguration><PerformanceCounterConfiguration counterSpecifier=\"\\Processor\\PercentIdleTime\" sampleRate=\"PT15S\" unit=\"Percent\"><annotation displayName=\"CPU idle time\" locale=\"en-us\"/></PerformanceCounterConfiguration><PerformanceCounterConfiguration counterSpecifier=\"\\Processor\\PercentUserTime\" sampleRate=\"PT15S\" unit=\"Percent\"><annotation displayName=\"CPU user time\" locale=\"en-us\"/></PerformanceCounterConfiguration><PerformanceCounterConfiguration counterSpecifier=\"\\Processor\\PercentNiceTime\" sampleRate=\"PT15S\" unit=\"Percent\"><annotation displayName=\"CPU nice time\" locale=\"en-us\"/></PerformanceCounterConfiguration><PerformanceCounterConfiguration counterSpecifier=\"\\Processor\\PercentPrivilegedTime\" sampleRate=\"PT15S\" unit=\"Percent\"><annotation displayName=\"CPU privileged time\" locale=\"en-us\"/></PerformanceCounterConfiguration><PerformanceCounterConfiguration counterSpecifier=\"\\Processor\\PercentInterruptTime\" sampleRate=\"PT15S\" unit=\"Percent\"><annotation displayName=\"CPU interrupt time\" locale=\"en-us\"/></PerformanceCounterConfiguration><PerformanceCounterConfiguration counterSpecifier=\"\\Processor\\PercentDPCTime\" sampleRate=\"PT15S\" unit=\"Percent\"><annotation displayName=\"CPU DPC time\" locale=\"en-us\"/></PerformanceCounterConfiguration><PerformanceCounterConfiguration counterSpecifier=\"\\Processor\\PercentProcessorTime\" sampleRate=\"PT15S\" unit=\"Percent\"><annotation displayName=\"CPU percentage guest OS\" locale=\"en-us\"/></PerformanceCounterConfiguration><PerformanceCounterConfiguration counterSpecifier=\"\\Processor\\PercentIOWaitTime\" sampleRate=\"PT15S\" unit=\"Percent\"><annotation displayName=\"CPU IO wait time\" locale=\"en-us\"/></PerformanceCounterConfiguration><PerformanceCounterConfiguration counterSpecifier=\"\\PhysicalDisk\\BytesPerSecond\" sampleRate=\"PT15S\" unit=\"BytesPerSecond\"><annotation displayName=\"Disk total bytes\" locale=\"en-us\"/></PerformanceCounterConfiguration><PerformanceCounterConfiguration counterSpecifier=\"\\PhysicalDisk\\ReadBytesPerSecond\" sampleRate=\"PT15S\" unit=\"BytesPerSecond\"><annotation displayName=\"Disk read guest OS\" locale=\"en-us\"/></PerformanceCounterConfiguration><PerformanceCounterConfiguration counterSpecifier=\"\\PhysicalDisk\\WriteBytesPerSecond\" sampleRate=\"PT15S\" unit=\"BytesPerSecond\"><annotation displayName=\"Disk write guest OS\" locale=\"en-us\"/></PerformanceCounterConfiguration><PerformanceCounterConfiguration counterSpecifier=\"\\PhysicalDisk\\TransfersPerSecond\" sampleRate=\"PT15S\" unit=\"CountPerSecond\"><annotation displayName=\"Disk transfers\" locale=\"en-us\"/></PerformanceCounterConfiguration><PerformanceCounterConfiguration counterSpecifier=\"\\PhysicalDisk\\ReadsPerSecond\" sampleRate=\"PT15S\" unit=\"CountPerSecond\"><annotation displayName=\"Disk reads\" locale=\"en-us\"/></PerformanceCounterConfiguration><PerformanceCounterConfiguration counterSpecifier=\"\\PhysicalDisk\\WritesPerSecond\" sampleRate=\"PT15S\" unit=\"CountPerSecond\"><annotation displayName=\"Disk writes\" locale=\"en-us\"/></PerformanceCounterConfiguration><PerformanceCounterConfiguration counterSpecifier=\"\\PhysicalDisk\\AverageReadTime\" sampleRate=\"PT15S\" unit=\"Seconds\"><annotation displayName=\"Disk read time\" locale=\"en-us\"/></PerformanceCounterConfiguration><PerformanceCounterConfiguration counterSpecifier=\"\\PhysicalDisk\\AverageWriteTime\" sampleRate=\"PT15S\" unit=\"Seconds\"><annotation displayName=\"Disk write time\" locale=\"en-us\"/></PerformanceCounterConfiguration><PerformanceCounterConfiguration counterSpecifier=\"\\PhysicalDisk\\AverageTransferTime\" sampleRate=\"PT15S\" unit=\"Seconds\"><annotation displayName=\"Disk transfer time\" locale=\"en-us\"/></PerformanceCounterConfiguration><PerformanceCounterConfiguration counterSpecifier=\"\\PhysicalDisk\\AverageDiskQueueLength\" sampleRate=\"PT15S\" unit=\"Count\"><annotation displayName=\"Disk queue length\" locale=\"en-us\"/></PerformanceCounterConfiguration><PerformanceCounterConfiguration counterSpecifier=\"\\NetworkInterface\\BytesTransmitted\" sampleRate=\"PT15S\" unit=\"Bytes\"><annotation displayName=\"Network out guest OS\" locale=\"en-us\"/></PerformanceCounterConfiguration><PerformanceCounterConfiguration counterSpecifier=\"\\NetworkInterface\\BytesReceived\" sampleRate=\"PT15S\" unit=\"Bytes\"><annotation displayName=\"Network in guest OS\" locale=\"en-us\"/></PerformanceCounterConfiguration><PerformanceCounterConfiguration counterSpecifier=\"\\NetworkInterface\\PacketsTransmitted\" sampleRate=\"PT15S\" unit=\"Count\"><annotation displayName=\"Packets sent\" locale=\"en-us\"/></PerformanceCounterConfiguration><PerformanceCounterConfiguration counterSpecifier=\"\\NetworkInterface\\PacketsReceived\" sampleRate=\"PT15S\" unit=\"Count\"><annotation displayName=\"Packets received\" locale=\"en-us\"/></PerformanceCounterConfiguration><PerformanceCounterConfiguration counterSpecifier=\"\\NetworkInterface\\BytesTotal\" sampleRate=\"PT15S\" unit=\"Bytes\"><annotation displayName=\"Network total bytes\" locale=\"en-us\"/></PerformanceCounterConfiguration><PerformanceCounterConfiguration counterSpecifier=\"\\NetworkInterface\\TotalRxErrors\" sampleRate=\"PT15S\" unit=\"Count\"><annotation displayName=\"Packets received errors\" locale=\"en-us\"/></PerformanceCounterConfiguration><PerformanceCounterConfiguration counterSpecifier=\"\\NetworkInterface\\TotalTxErrors\" sampleRate=\"PT15S\" unit=\"Count\"><annotation displayName=\"Packets sent errors\" locale=\"en-us\"/></PerformanceCounterConfiguration><PerformanceCounterConfiguration counterSpecifier=\"\\NetworkInterface\\TotalCollisions\" sampleRate=\"PT15S\" unit=\"Count\"><annotation displayName=\"Network collisions\" locale=\"en-us\"/></PerformanceCounterConfiguration></PerformanceCounters>", | |
"metricsstart": "<WadCfg><DiagnosticMonitorConfiguration overallQuotaInMB=\"4096\"><DiagnosticInfrastructureLogs scheduledTransferPeriod=\"PT1M\" scheduledTransferLogLevelFilter=\"Warning\"/>", | |
"wadcfgx": "[concat(variables('metricsstart'), variables('metricscounters'), variables('metricsclosing'))]", | |
"diagnosticsExtensionName": "Microsoft.Insights.VMDiagnosticsSettings" | |
}, | |
"resources": [ | |
{ | |
"type": "Microsoft.Compute/virtualMachines", | |
"name": "[parameters('virtualMachineName')]", | |
"apiVersion": "2016-04-30-preview", | |
"location": "[parameters('location')]", | |
"properties": { | |
"osProfile": { | |
"computerName": "[parameters('virtualMachineName')]", | |
"adminUsername": "[parameters('adminUsername')]", | |
"linuxConfiguration": { | |
"disablePasswordAuthentication": "true", | |
"ssh": { | |
"publicKeys": [ | |
{ | |
"path": "[concat('/home/', parameters('adminUsername'), '/.ssh/authorized_keys')]", | |
"keyData": "[parameters('adminPublicKey')]" | |
} | |
] | |
} | |
} | |
}, | |
"hardwareProfile": { | |
"vmSize": "[parameters('virtualMachineSize')]" | |
}, | |
"storageProfile": { | |
"imageReference": { | |
"publisher": "Canonical", | |
"offer": "UbuntuServer", | |
"sku": "16.04-LTS", | |
"version": "latest" | |
}, | |
"osDisk": { | |
"name": "[parameters('virtualMachineName')]", | |
"createOption": "fromImage", | |
"vhd": { | |
"uri": "[concat(concat(reference(resourceId(resourceGroup().name, 'Microsoft.Storage/storageAccounts', parameters('storageAccountName')), '2015-06-15').primaryEndpoints['blob'], 'vhds/'), parameters('virtualMachineName'), '20170410172613.vhd')]" | |
} | |
}, | |
"dataDisks": [] | |
}, | |
"networkProfile": { | |
"networkInterfaces": [ | |
{ | |
"id": "[resourceId('Microsoft.Network/networkInterfaces', parameters('networkInterfaceName'))]" | |
} | |
] | |
}, | |
"diagnosticsProfile": { | |
"bootDiagnostics": { | |
"enabled": true, | |
"storageUri": "[reference(resourceId(resourceGroup().name, 'Microsoft.Storage/storageAccounts', parameters('diagnosticsStorageAccountName')), '2015-06-15').primaryEndpoints['blob']]" | |
} | |
}, | |
"availabilitySet": { | |
"id": "[resourceId('Microsoft.Compute/availabilitySets', parameters('availabilitySetName'))]" | |
} | |
}, | |
"dependsOn": [ | |
"[concat('Microsoft.Network/networkInterfaces/', parameters('networkInterfaceName'))]", | |
"[concat('Microsoft.Compute/availabilitySets/', parameters('availabilitySetName'))]", | |
"[concat('Microsoft.Storage/storageAccounts/', parameters('storageAccountName'))]", | |
"[concat('Microsoft.Storage/storageAccounts/', parameters('diagnosticsStorageAccountName'))]" | |
] | |
}, | |
{ | |
"type": "Microsoft.Compute/virtualMachines/extensions", | |
"name": "[concat(parameters('virtualMachineName'),'/', variables('diagnosticsExtensionName'))]", | |
"apiVersion": "2016-04-30-preview", | |
"location": "[parameters('location')]", | |
"properties": { | |
"publisher": "Microsoft.OSTCExtensions", | |
"type": "LinuxDiagnostic", | |
"typeHandlerVersion": "2.3", | |
"autoUpgradeMinorVersion": true, | |
"settings": { | |
"StorageAccount": "[parameters('diagnosticsStorageAccountName')]", | |
"xmlCfg": "[base64(variables('wadcfgx'))]" | |
}, | |
"protectedSettings": { | |
"storageAccountName": "[parameters('diagnosticsStorageAccountName')]", | |
"storageAccountKey": "[listKeys(parameters('diagnosticsStorageAccountId'),'2015-06-15').key1]", | |
"storageAccountEndPoint": "https://core.windows.net/" | |
} | |
}, | |
"dependsOn": [ | |
"[concat('Microsoft.Compute/virtualMachines/', parameters('virtualMachineName'))]" | |
] | |
}, | |
{ | |
"type": "Microsoft.Compute/availabilitySets", | |
"name": "[parameters('availabilitySetName')]", | |
"apiVersion": "2016-04-30-preview", | |
"location": "[parameters('location')]", | |
"properties": { | |
"platformFaultDomainCount": "[parameters('availabilitySetPlatformFaultDomainCount')]", | |
"platformUpdateDomainCount": "[parameters('availabilitySetPlatformUpdateDomainCount')]" | |
} | |
}, | |
{ | |
"type": "Microsoft.Storage/storageAccounts", | |
"name": "[parameters('storageAccountName')]", | |
"apiVersion": "2015-06-15", | |
"location": "[parameters('location')]", | |
"properties": { | |
"accountType": "[parameters('storageAccountType')]" | |
} | |
}, | |
{ | |
"type": "Microsoft.Storage/storageAccounts", | |
"name": "[parameters('diagnosticsStorageAccountName')]", | |
"apiVersion": "2015-06-15", | |
"location": "[parameters('location')]", | |
"properties": { | |
"accountType": "[parameters('diagnosticsStorageAccountType')]" | |
} | |
}, | |
{ | |
"type": "Microsoft.Network/networkInterfaces", | |
"name": "[parameters('networkInterfaceName')]", | |
"apiVersion": "2016-09-01", | |
"location": "[parameters('location')]", | |
"properties": { | |
"ipConfigurations": [ | |
{ | |
"name": "ipconfig1", | |
"properties": { | |
"subnet": { | |
"id": "[variables('subnetRef')]" | |
}, | |
"privateIPAllocationMethod": "Dynamic", | |
"publicIpAddress": { | |
"id": "[resourceId(resourceGroup().name,'Microsoft.Network/publicIpAddresses', parameters('publicIpAddressName'))]" | |
} | |
} | |
} | |
], | |
"networkSecurityGroup": { | |
"id": "[resourceId(resourceGroup().name, 'Microsoft.Network/networkSecurityGroups', parameters('networkSecurityGroupName'))]" | |
} | |
}, | |
"dependsOn": [ | |
"[concat('Microsoft.Network/publicIpAddresses/', parameters('publicIpAddressName'))]", | |
"[concat('Microsoft.Network/networkSecurityGroups/', parameters('networkSecurityGroupName'))]" | |
] | |
}, | |
{ | |
"type": "Microsoft.Network/publicIpAddresses", | |
"name": "[parameters('publicIpAddressName')]", | |
"apiVersion": "2016-09-01", | |
"location": "[parameters('location')]", | |
"properties": { | |
"publicIpAllocationMethod": "[parameters('publicIpAddressType')]" | |
} | |
}, | |
{ | |
"type": "Microsoft.Network/networkSecurityGroups", | |
"name": "[parameters('networkSecurityGroupName')]", | |
"apiVersion": "2016-09-01", | |
"location": "[parameters('location')]", | |
"properties": { | |
"securityRules": [ | |
{ | |
"name": "default-allow-ssh", | |
"properties": { | |
"priority": 1000, | |
"sourceAddressPrefix": "*", | |
"protocol": "TCP", | |
"destinationPortRange": "22", | |
"access": "Allow", | |
"direction": "Inbound", | |
"sourcePortRange": "*", | |
"destinationAddressPrefix": "*" | |
} | |
}, | |
{ | |
"name": "rdp", | |
"properties": { | |
"priority": 1010, | |
"sourceAddressPrefix": "*", | |
"protocol": "TCP", | |
"destinationPortRange": "3389", | |
"access": "Allow", | |
"direction": "Inbound", | |
"sourcePortRange": "*", | |
"destinationAddressPrefix": "*" | |
} | |
} | |
] | |
} | |
} | |
], | |
"outputs": { | |
"adminUsername": { | |
"type": "String", | |
"value": "[parameters('adminUsername')]" | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment