{ "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json##", "contentVersion": "1.0.0.0", "parameters": { "companyname": { "type": "string", "defaultValue": "rg1", "metadata": { "description": "Name of the resourceGroup to create" } }, "location": { "type": "string", "defaultValue": "westeurope", "allowedValues": [ "westeurope", "northeurope" ], "metadata": { "description": "Location for the resourceGroup" } }, "subnetName": { "type": "string" }, "osDiskType": { "type": "string" }, "dataDisks": { "type": "array" }, "dataDiskResources": { "type": "array" }, "virtualMachineSize": { "type": "string" }, "adminUsername": { "type": "string" }, "adminPassword": { "type": "secureString" }, "patchMode": { "type": "string" }, "autoShutdownStatus": { "type": "string" }, "autoShutdownTime": { "type": "string" }, "autoShutdownTimeZone": { "type": "string" }, "autoShutdownNotificationStatus": { "type": "string" }, "autoShutdownNotificationLocale": { "type": "string" }, "autoShutdownNotificationEmail": { "type": "string" } }, "variables": { "rgName": "[toLower(concat('rg_', parameters('companyname')))]", "vnetName": "[toLower(concat('vnet-', parameters('companyname')))]", "vmName": "[toLower(concat('vm-', parameters('companyname')))]", "vmCompName": "[toLower(concat('vm-', parameters('companyname')))]", "vnetId": "[resourceId(variables('rgName'),'Microsoft.Network/virtualNetworks',variables('vnetName'))]", "subnetRef": "[concat(variables('vnetId'), '/subnets/', parameters('subnetName'))]", "nicName": "[concat('nic-', variables('vmName'))]" }, "resources": [ { "name": "[variables('nicName')]", "type": "Microsoft.Network/networkInterfaces", "apiVersion": "2018-10-01", "location": "[parameters('location')]", "dependsOn": [], "properties": { "ipConfigurations": [ { "name": "ipconfig1", "properties": { "subnet": { "id": "[variables('subnetRef')]" }, "privateIPAllocationMethod": "Dynamic" } } ] }, "tags": { "dtap": "production", "application": "management", "costcenter": "ict", "expiration": "never", "owner": "ict" } }, { "name": "[parameters('dataDiskResources')[copyIndex()].name]", "type": "Microsoft.Compute/disks", "apiVersion": "2020-05-01", "location": "[parameters('location')]", "properties": "[parameters('dataDiskResources')[copyIndex()].properties]", "sku": { "name": "[parameters('dataDiskResources')[copyIndex()].sku]" }, "copy": { "name": "managedDiskResources", "count": "[length(parameters('dataDiskResources'))]" }, "tags": { "dtap": "production", "application": "management", "backup": "yes", "ciarating": "111", "costcenter": "ict", "expiration": "never", "owner": "ict" } }, { "name": "[variables('vmName')]", "type": "Microsoft.Compute/virtualMachines", "apiVersion": "2020-06-01", "location": "[parameters('location')]", "dependsOn": [ "managedDiskResources", "[concat('Microsoft.Network/networkInterfaces/', variables('nicName'))]" ], "properties": { "hardwareProfile": { "vmSize": "[parameters('virtualMachineSize')]" }, "storageProfile": { "osDisk": { "createOption": "fromImage", "managedDisk": { "storageAccountType": "[parameters('osDiskType')]" } }, "imageReference": { "publisher": "MicrosoftWindowsServer", "offer": "WindowsServer", "sku": "2019-Datacenter", "version": "latest" }, "copy": [ { "name": "dataDisks", "count": "[length(parameters('dataDisks'))]", "input": { "lun": "[parameters('dataDisks')[copyIndex('dataDisks')].lun]", "createOption": "[parameters('dataDisks')[copyIndex('dataDisks')].createOption]", "caching": "[parameters('dataDisks')[copyIndex('dataDisks')].caching]", "diskSizeGB": "[parameters('dataDisks')[copyIndex('dataDisks')].diskSizeGB]", "managedDisk": { "id": "[coalesce(parameters('dataDisks')[copyIndex('dataDisks')].id, if(equals(parameters('dataDisks')[copyIndex('dataDisks')].name, json('null')), json('null'), resourceId('Microsoft.Compute/disks', parameters('dataDisks')[copyIndex('dataDisks')].name)))]", "storageAccountType": "[parameters('dataDisks')[copyIndex('dataDisks')].storageAccountType]" }, "writeAcceleratorEnabled": "[parameters('dataDisks')[copyIndex('dataDisks')].writeAcceleratorEnabled]" } } ] }, "networkProfile": { "networkInterfaces": [ { "id": "[resourceId('Microsoft.Network/networkInterfaces', variables('nicName'))]" } ] }, "osProfile": { "computerName": "[variables('vmCompName')]", "adminUsername": "[parameters('adminUsername')]", "adminPassword": "[parameters('adminPassword')]", "windowsConfiguration": { "enableAutomaticUpdates": true, "provisionVmAgent": true, "patchSettings": { "patchMode": "[parameters('patchMode')]" } } } }, "tags": { "dtap": "production", "application": "management", "backup": "yes", "ciarating": "111", "costcenter": "ict", "expiration": "never", "owner": "ict" } }, { "name": "[concat('shutdown-computevm-', variables('vmName'))]", "type": "Microsoft.DevTestLab/schedules", "apiVersion": "2017-04-26-preview", "location": "[parameters('location')]", "dependsOn": [ "[concat('Microsoft.Compute/virtualMachines/', variables('vmName'))]" ], "properties": { "status": "[parameters('autoShutdownStatus')]", "taskType": "ComputeVmShutdownTask", "dailyRecurrence": { "time": "[parameters('autoShutdownTime')]" }, "timeZoneId": "[parameters('autoShutdownTimeZone')]", "targetResourceId": "[resourceId('Microsoft.Compute/virtualMachines', variables('vmName'))]", "notificationSettings": { "status": "[parameters('autoShutdownNotificationStatus')]", "notificationLocale": "[parameters('autoShutdownNotificationLocale')]", "timeInMinutes": "30", "emailRecipient": "[parameters('autoShutdownNotificationEmail')]" } }, "tags": { "dtap": "production" } } ], "outputs": { "adminUsername": { "type": "string", "value": "[parameters('adminUsername')]" } } }