AzurePower Shell
Azure ArmTemplate
This JSON Template creates the following Items:
- NetworkInterface
- NetworkSecurityGroup
- VirtualNetwork
- PublicIP
- VirtualMachine
- StorageAccount
- Availability Set
- VM Diagnostic Extension
- Managed Disk
- Allowed RDP, HTTP, HTTPS
{ "$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#", "contentVersion": "1.0.0.0", "parameters": { "location": { "type": "string", "Defaultvalue": "west us" }, "networkInterfaceName": { "type": "string", "Defaultvalue": "vm-test3867" }, "networkSecurityGroupName": { "type": "string", "Defaultvalue": "vm-test3-nsg" }, "networkSecurityGroupRules": { "type": "array", "Defaultvalue": [ { "name": "RDP", "properties": { "priority": 300, "protocol": "TCP", "access": "Allow", "direction": "Inbound", "sourceAddressPrefix": "*", "sourcePortRange": "*", "destinationAddressPrefix": "*", "destinationPortRange": "3389" } }, { "name": "HTTPS", "properties": { "priority": 320, "protocol": "TCP", "access": "Allow", "direction": "Inbound", "sourceAddressPrefix": "*", "sourcePortRange": "*", "destinationAddressPrefix": "*", "destinationPortRange": "443" } }, { "name": "HTTP", "properties": { "priority": 340, "protocol": "TCP", "access": "Allow", "direction": "Inbound", "sourceAddressPrefix": "*", "sourcePortRange": "*", "destinationAddressPrefix": "*", "destinationPortRange": "80" } } ] }, "subnetName": { "type": "string", "Defaultvalue": "default" }, "virtualNetworkName": { "type": "string", "Defaultvalue": "hashmat-Iaas-3-vnet" }, "addressPrefixes": { "type": "array", "Defaultvalue": [ "10.0.1.0/24" ] }, "subnets": { "type": "array", "Defaultvalue": [ { "name": "default", "properties": { "addressPrefix": "10.0.1.0/24" } } ] }, "publicIpAddressName": { "type": "string", "Defaultvalue": "vm-test3-ip" }, "publicIpAddressType": { "type": "string", "Defaultvalue": "Dynamic" }, "publicIpAddressSku": { "type": "string", "Defaultvalue": "Basic" }, "virtualMachineName": { "type": "string", "Defaultvalue": "vm-test3" }, "virtualMachineRG": { "type": "string", "Defaultvalue": "hashmat-Iaas-3" }, "osDiskType": { "type": "string", "Defaultvalue": "Premium_LRS" }, "virtualMachineSize": { "type": "string", "Defaultvalue": "Standard_DS1_v2" }, "adminUsername": { "type": "string", "Defaultvalue": "vmAdmin" }, "adminPassword": { "type": "secureString" }, "diagnosticsStorageAccountName": { "type": "string", "Defaultvalue": "hashmatiaas3diag" }, "diagnosticsStorageAccountId": { "type": "string", "Defaultvalue": "Microsoft.Storage/storageAccounts/hashmatiaas3diag" }, "diagnosticsStorageAccountType": { "type": "string", "Defaultvalue": "Standard_LRS" }, "diagnosticsStorageAccountKind": { "type": "string", "Defaultvalue": "Storage" }, "availabilitySetName": { "type": "string", "Defaultvalue": "AvSet1" }, "availabilitySetPlatformFaultDomainCount": { "type": "int", "Defaultvalue": 2 }, "availabilitySetPlatformUpdateDomainCount": { "type": "int", "Defaultvalue": 5 } }, "variables": { "nsgId": "[resourceId(resourceGroup().name, 'Microsoft.Network/networkSecurityGroups', parameters('networkSecurityGroupName'))]", "vnetId": "[resourceId(resourceGroup().name,'Microsoft.Network/virtualNetworks', parameters('virtualNetworkName'))]", "subnetRef": "[concat(variables('vnetId'), '/subnets/', parameters('subnetName'))]", "diagnosticsExtensionName": "Microsoft.Insights.VMDiagnosticsSettings" }, "resources": [ { "name": "[parameters('networkInterfaceName')]", "type": "Microsoft.Network/networkInterfaces", "apiVersion": "2018-10-01", "location": "[parameters('location')]", "dependsOn": [ "[concat('Microsoft.Network/networkSecurityGroups/', parameters('networkSecurityGroupName'))]", "[concat('Microsoft.Network/virtualNetworks/', parameters('virtualNetworkName'))]", "[concat('Microsoft.Network/publicIpAddresses/', parameters('publicIpAddressName'))]" ], "properties": { "ipConfigurations": [ { "name": "ipconfig1", "properties": { "subnet": { "id": "[variables('subnetRef')]" }, "privateIPAllocationMethod": "Dynamic", "publicIpAddress": { "id": "[resourceId(resourceGroup().name, 'Microsoft.Network/publicIpAddresses', parameters('publicIpAddressName'))]" } } } ], "networkSecurityGroup": { "id": "[variables('nsgId')]" } }, "tags": { "Department": "test" } }, { "name": "[parameters('networkSecurityGroupName')]", "type": "Microsoft.Network/networkSecurityGroups", "apiVersion": "2019-02-01", "location": "[parameters('location')]", "properties": { "securityRules": "[parameters('networkSecurityGroupRules')]" }, "tags": { "Department": "test" } }, { "name": "[parameters('virtualNetworkName')]", "type": "Microsoft.Network/virtualNetworks", "apiVersion": "2019-04-01", "location": "[parameters('location')]", "properties": { "addressSpace": { "addressPrefixes": "[parameters('addressPrefixes')]" }, "subnets": "[parameters('subnets')]" }, "tags": { "Department": "test" } }, { "name": "[parameters('publicIpAddressName')]", "type": "Microsoft.Network/publicIpAddresses", "apiVersion": "2019-02-01", "location": "[parameters('location')]", "properties": { "publicIpAllocationMethod": "[parameters('publicIpAddressType')]" }, "sku": { "name": "[parameters('publicIpAddressSku')]" }, "tags": { "Department": "test" } }, { "name": "[parameters('virtualMachineName')]", "type": "Microsoft.Compute/virtualMachines", "apiVersion": "2019-03-01", "location": "[parameters('location')]", "dependsOn": [ "[concat('Microsoft.Network/networkInterfaces/', parameters('networkInterfaceName'))]", "[concat('Microsoft.Storage/storageAccounts/', parameters('diagnosticsStorageAccountName'))]", "[concat('Microsoft.Compute/availabilitySets/', parameters('availabilitySetName'))]" ], "properties": { "hardwareProfile": { "vmSize": "[parameters('virtualMachineSize')]" }, "storageProfile": { "osDisk": { "createOption": "fromImage", "managedDisk": { "storageAccountType": "[parameters('osDiskType')]" } }, "imageReference": { "publisher": "MicrosoftWindowsServer", "offer": "WindowsServer", "sku": "2016-Datacenter", "version": "latest" } }, "networkProfile": { "networkInterfaces": [ { "id": "[resourceId('Microsoft.Network/networkInterfaces', parameters('networkInterfaceName'))]" } ] }, "osProfile": { "computerName": "[parameters('virtualMachineName')]", "adminUsername": "[parameters('adminUsername')]", "adminPassword": "[parameters('adminPassword')]", "windowsConfiguration": { "enableAutomaticUpdates": true, "provisionVmAgent": true } }, "licenseType": "Windows_Server", "diagnosticsProfile": { "bootDiagnostics": { "enabled": true, "storageUri": "[concat('https://', parameters('diagnosticsStorageAccountName'), '.blob.core.windows.net/')]" } }, "availabilitySet": { "id": "[resourceId('Microsoft.Compute/availabilitySets', parameters('availabilitySetName'))]" } }, "tags": { "Department": "test" } }, { "name": "[parameters('diagnosticsStorageAccountName')]", "type": "Microsoft.Storage/storageAccounts", "apiVersion": "2019-06-01", "location": "[parameters('location')]", "properties": {}, "kind": "[parameters('diagnosticsStorageAccountKind')]", "sku": { "name": "[parameters('diagnosticsStorageAccountType')]" }, "tags": { "Department": "test" } }, { "name": "[parameters('availabilitySetName')]", "type": "Microsoft.Compute/availabilitySets", "apiVersion": "2016-04-30-preview", "location": "[parameters('location')]", "properties": { "platformFaultDomainCount": "[parameters('availabilitySetPlatformFaultDomainCount')]", "platformUpdateDomainCount": "[parameters('availabilitySetPlatformUpdateDomainCount')]" }, "sku": { "name": "Aligned" }, "tags": { "Department": "test" } }, { "name": "[concat(parameters('virtualMachineName'),'/', variables('diagnosticsExtensionName'))]", "type": "Microsoft.Compute/virtualMachines/extensions", "apiVersion": "2018-10-01", "location": "[parameters('location')]", "properties": { "publisher": "Microsoft.Azure.Diagnostics", "type": "IaaSDiagnostics", "typeHandlerVersion": "1.5", "autoUpgradeMinorVersion": true, "settings": { "StorageAccount": "[parameters('diagnosticsStorageAccountName')]", "WadCfg": { "DiagnosticMonitorConfiguration": { "overallQuotaInMB": 5120, "Metrics": { "resourceId": "[concat('/subscriptions/', subscription().subscriptionId, '/resourceGroups/', resourceGroup().name, '/providers/', 'Microsoft.Compute/virtualMachines/', parameters('virtualMachineName'))]", "MetricAggregation": [ { "scheduledTransferPeriod": "PT1H" }, { "scheduledTransferPeriod": "PT1M" } ] }, "DiagnosticInfrastructureLogs": { "scheduledTransferLogLevelFilter": "Error" }, "PerformanceCounters": { "scheduledTransferPeriod": "PT1M", "PerformanceCounterConfiguration": [ { "counterSpecifier": "\\Processor Information(_Total)\\% Processor Time", "unit": "Percent", "sampleRate": "PT60S" }, { "counterSpecifier": "\\Processor Information(_Total)\\% Privileged Time", "unit": "Percent", "sampleRate": "PT60S" }, { "counterSpecifier": "\\Processor Information(_Total)\\% User Time", "unit": "Percent", "sampleRate": "PT60S" }, { "counterSpecifier": "\\Processor Information(_Total)\\Processor Frequency", "unit": "Count", "sampleRate": "PT60S" }, { "counterSpecifier": "\\System\\Processes", "unit": "Count", "sampleRate": "PT60S" }, { "counterSpecifier": "\\Process(_Total)\\Thread Count", "unit": "Count", "sampleRate": "PT60S" }, { "counterSpecifier": "\\Process(_Total)\\Handle Count", "unit": "Count", "sampleRate": "PT60S" }, { "counterSpecifier": "\\System\\System Up Time", "unit": "Count", "sampleRate": "PT60S" }, { "counterSpecifier": "\\System\\Context Switches/sec", "unit": "CountPerSecond", "sampleRate": "PT60S" }, { "counterSpecifier": "\\System\\Processor Queue Length", "unit": "Count", "sampleRate": "PT60S" }, { "counterSpecifier": "\\Memory\\% Committed Bytes In Use", "unit": "Percent", "sampleRate": "PT60S" }, { "counterSpecifier": "\\Memory\\Available Bytes", "unit": "Bytes", "sampleRate": "PT60S" }, { "counterSpecifier": "\\Memory\\Committed Bytes", "unit": "Bytes", "sampleRate": "PT60S" }, { "counterSpecifier": "\\Memory\\Cache Bytes", "unit": "Bytes", "sampleRate": "PT60S" }, { "counterSpecifier": "\\Memory\\Pool Paged Bytes", "unit": "Bytes", "sampleRate": "PT60S" }, { "counterSpecifier": "\\Memory\\Pool Nonpaged Bytes", "unit": "Bytes", "sampleRate": "PT60S" }, { "counterSpecifier": "\\Memory\\Pages/sec", "unit": "CountPerSecond", "sampleRate": "PT60S" }, { "counterSpecifier": "\\Memory\\Page Faults/sec", "unit": "CountPerSecond", "sampleRate": "PT60S" }, { "counterSpecifier": "\\Process(_Total)\\Working Set", "unit": "Count", "sampleRate": "PT60S" }, { "counterSpecifier": "\\Process(_Total)\\Working Set - Private", "unit": "Count", "sampleRate": "PT60S" }, { "counterSpecifier": "\\LogicalDisk(_Total)\\% Disk Time", "unit": "Percent", "sampleRate": "PT60S" }, { "counterSpecifier": "\\LogicalDisk(_Total)\\% Disk Read Time", "unit": "Percent", "sampleRate": "PT60S" }, { "counterSpecifier": "\\LogicalDisk(_Total)\\% Disk Write Time", "unit": "Percent", "sampleRate": "PT60S" }, { "counterSpecifier": "\\LogicalDisk(_Total)\\% Idle Time", "unit": "Percent", "sampleRate": "PT60S" }, { "counterSpecifier": "\\LogicalDisk(_Total)\\Disk Bytes/sec", "unit": "BytesPerSecond", "sampleRate": "PT60S" }, { "counterSpecifier": "\\LogicalDisk(_Total)\\Disk Read Bytes/sec", "unit": "BytesPerSecond", "sampleRate": "PT60S" }, { "counterSpecifier": "\\LogicalDisk(_Total)\\Disk Write Bytes/sec", "unit": "BytesPerSecond", "sampleRate": "PT60S" }, { "counterSpecifier": "\\LogicalDisk(_Total)\\Disk Transfers/sec", "unit": "BytesPerSecond", "sampleRate": "PT60S" }, { "counterSpecifier": "\\LogicalDisk(_Total)\\Disk Reads/sec", "unit": "BytesPerSecond", "sampleRate": "PT60S" }, { "counterSpecifier": "\\LogicalDisk(_Total)\\Disk Writes/sec", "unit": "BytesPerSecond", "sampleRate": "PT60S" }, { "counterSpecifier": "\\LogicalDisk(_Total)\\Avg. Disk sec/Transfer", "unit": "Count", "sampleRate": "PT60S" }, { "counterSpecifier": "\\LogicalDisk(_Total)\\Avg. Disk sec/Read", "unit": "Count", "sampleRate": "PT60S" }, { "counterSpecifier": "\\LogicalDisk(_Total)\\Avg. Disk sec/Write", "unit": "Count", "sampleRate": "PT60S" }, { "counterSpecifier": "\\LogicalDisk(_Total)\\Avg. Disk Queue Length", "unit": "Count", "sampleRate": "PT60S" }, { "counterSpecifier": "\\LogicalDisk(_Total)\\Avg. Disk Read Queue Length", "unit": "Count", "sampleRate": "PT60S" }, { "counterSpecifier": "\\LogicalDisk(_Total)\\Avg. Disk Write Queue Length", "unit": "Count", "sampleRate": "PT60S" }, { "counterSpecifier": "\\LogicalDisk(_Total)\\% Free Space", "unit": "Percent", "sampleRate": "PT60S" }, { "counterSpecifier": "\\LogicalDisk(_Total)\\Free Megabytes", "unit": "Count", "sampleRate": "PT60S" }, { "counterSpecifier": "\\Network Interface(*)\\Bytes Total/sec", "unit": "BytesPerSecond", "sampleRate": "PT60S" }, { "counterSpecifier": "\\Network Interface(*)\\Bytes Sent/sec", "unit": "BytesPerSecond", "sampleRate": "PT60S" }, { "counterSpecifier": "\\Network Interface(*)\\Bytes Received/sec", "unit": "BytesPerSecond", "sampleRate": "PT60S" }, { "counterSpecifier": "\\Network Interface(*)\\Packets/sec", "unit": "BytesPerSecond", "sampleRate": "PT60S" }, { "counterSpecifier": "\\Network Interface(*)\\Packets Sent/sec", "unit": "BytesPerSecond", "sampleRate": "PT60S" }, { "counterSpecifier": "\\Network Interface(*)\\Packets Received/sec", "unit": "BytesPerSecond", "sampleRate": "PT60S" }, { "counterSpecifier": "\\Network Interface(*)\\Packets Outbound Errors", "unit": "Count", "sampleRate": "PT60S" }, { "counterSpecifier": "\\Network Interface(*)\\Packets Received Errors", "unit": "Count", "sampleRate": "PT60S" } ] }, "WindowsEventLog": { "scheduledTransferPeriod": "PT1M", "DataSource": [ { "name": "Application!*[System[(Level = 1 or Level = 2 or Level = 3)]]" }, { "name": "Security!*[System[band(Keywords,4503599627370496)]]" }, { "name": "System!*[System[(Level = 1 or Level = 2 or Level = 3)]]" } ] } } } }, "protectedSettings": { "storageAccountName": "[parameters('diagnosticsStorageAccountName')]", "storageAccountKey": "[first(listKeys(parameters('diagnosticsStorageAccountId'),'2019-06-01').keys).value]", "storageAccountEndPoint": "https://core.windows.net/" } }, "tags": { "Department": "test" }, "dependsOn": [ "[concat('Microsoft.Compute/virtualMachines/', parameters('virtualMachineName'))]" ] } ], "outputs": { "adminUsername": { "type": "string", "value": "[parameters('adminUsername')]" } } }