Improve this page

Overview

This template deploys a Virtual Machine on the Cloud Boost IaaS Landing zone for the release of this landing zone see VSTS Azure IaaS Release .

Name Azure Virtual Machine
Description This template deploys a Windows or Linux Azure Virtual Machine.
Category App Resource.
Owner OneDeliver

Online resources

Functionality

This template deploys a Windows or Linux Azure Virtual Machine. Based on the specified parameters, the following Virtual Machine extensions will be added to the Virtual Machine:

Extensions for Windows Virtual Machines

Extensions for Linux Virtual Machines

Requirements

See also Cloud Boost IaaS Landing zone and its release VSTS Azure IaaS Release

Parameters

Name Type Allowed Values Default Value Mandatory Description
tagBillingIdentifier string     Yes BillingIdentifier tag.
azureAutomationAccountEndPoint string     Yes Automation Account Registration URL.
azureAutomationAccountKey string     Yes Automation Account Registration URL key.
vmCount int 1-99 1 No Number of Virtual Machines to be created.
vmExDscNodeConfigurationName string     No The name of the node configuration, on the Azure Automation DSC pull server, that this node will be configured as. If it does not contain a ‘.’ (dot), then a dot followed by the VM name will be appended.
vmVmSize string   Standard_A2 No Virtual Machine’s Size.
Please, check the online documentation for a complete list of available VM sizes:
[Windows] https://docs.microsoft.com/en-us/azure/virtual-machines/windows/sizes
[Linux] https://docs.microsoft.com/en-us/azure/virtual-machines/linux/sizes
vmImageReferenceName string WS2016DC
RHEL7.4
RHELSAPHANA7.3
SUSESAP12SP3
WS2016SQL2017ENT
WS2016SQL2017STD
WS2016SQL2017WEB
WS2016DC No Name of Virtual Machine’s Image Reference on the Image reference list.
vmDataDiskCount int 0-16 0 No Number of Data disks that should be attached to the Virtual Machine.
vmDataDiskSizeGb int 31
63
127
511
1023
2047
4095
31 No Size (in Gb) of each of the Virtual Machine’s data disks
vmDiskStorageType string HDD
SSD
HDD No Indicator for the disk type. The following values are supported: HDD, SSD.
vmAvailabilitySetType string None
HA
None No Indicator for a high available setup type
vmAvailabilitySetPlatformFaultDomainCount int   2 No Fault Domain count of the Availability Set
vmAvailabilitySetPlatformUpdateDomainCount int   3 No Update Domain count of the Availability Set
migrateLicense string Yes
No
N/A
No No Specifies that the image or disk that is being used was licensed on-premises. This element is only used for images that contain the Windows Server operating system.
vmPrivateIPAllocationMethod string Static
Dynamic
Dynamic No Set the Private IP on (each of) the Virtual Machine(s) to static or dynamic
vmPrivateIPRange string   10.0.24. No String containing the first 3 bytes of the Private IP(s) that will be created for the Virtual Machine(s) if vmPrivateIPAllocationMethod is set to static.
vmPrivateIPIndexOffset int 1-254 4 No Last byte of the first of the Private IPs that will be created for the Virtual Machine(s) if vmPrivateIPAllocationMethod is set to static.
vmVnetSubnetResourceId string     Yes The Resource Id of the Virtual Network Subnet to which the Virtual Machine’s NIC(s) will be attached.
vmLinuxConfigurationSshPublicKeysKeyData string     No The content of the SSH RSA public key file as a Base64 encoded string.
vmIndexOffset int 0-999 1 No Index from where the Virtual Machine creation will be started.
vmAdminUserPassword securestring     Yes Password of the Virtual Machine’s local administrator user.
vmWindowsConfigurationTimeZone string     No The time zone of the VM.

Output

The output of this template is an object with a property named virtualMachines containing an array with the Name(s) and ResourceId(s) of the created Virtual Machine(s)

Name Type Description
virtualMachines array Array containing the Name(s) and ResourceId(s) of the created Virtual Machine(s).

Sample Output:

"virtualMachines":[
    {
        "vmName":  "vmname1",
        "vmResourceId":  "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/gtia001-it-weu-p01-adc/providers/Microsoft.Compute/virtualMachines/itweup01adcvm01"
    },
    {
        "vmName":  "vmname2",
        "vmResourceId":  "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/gtia001-it-weu-p01-adc/providers/Microsoft.Compute/virtualMachines/itweup01adcvm02"    }
]

Compliance Advisor details

Resource Health Result

Message ResourceType Severity
Location for the resource should not be hardcoded, it should be parameterized and should refer from Resource Group's location i.e. [resourceGroup().location]   Microsoft.Compute/availabilitySets 2
Your current API Version i.e.2017-03-30 for the resource Microsoft.Compute/availabilitySets is outdatedconsider updating to new recent version available i.e. 2023-03-01 or 2022-11-01 Microsoft.Compute/availabilitySets 2
Location for the resource should not be hardcoded, it should be parameterized and should refer from Resource Group's location i.e. [resourceGroup().location]   Microsoft.Network/publicIPAddresses 2
Your current API Version i.e.2016-03-30 for the resource Microsoft.Network/publicIPAddresses is outdatedconsider updating to new recent version available i.e. 2023-04-01 or 2023-02-01 Microsoft.Network/publicIPAddresses 2
Location for the resource should not be hardcoded, it should be parameterized and should refer from Resource Group's location i.e. [resourceGroup().location]   Microsoft.Network/networkInterfaces 2
Your current API Version i.e.2015-06-15 for the resource Microsoft.Network/networkInterfaces is outdatedconsider updating to new recent version available i.e. 2023-04-01 or 2023-02-01 Microsoft.Network/networkInterfaces 2
Your current API Version i.e.2017-08-01 for the resource Microsoft.Resources/deployments is outdatedconsider updating to new recent version available i.e. 2022-09-01 or 2021-04-01 Microsoft.Resources/deployments 2
Location for the resource should not be hardcoded, it should be parameterized and should refer from Resource Group's location i.e. [resourceGroup().location]   Microsoft.Compute/virtualMachines 2
Install the extension to enable a vulnerability assessment solution on your virtual machines.   Microsoft.Compute/virtualMachines 2
It is recommended to implement Auto-Shutdown option for your virtual Machine if you are using non production or Dev/Test lab virtual machines, this will enable us to save compute power   Microsoft.Compute/virtualMachines 2
Your current API Version i.e.2017-03-30 for the resource Microsoft.Compute/virtualMachines is outdatedconsider updating to new recent version available i.e. 2023-03-01 or 2022-11-01 Microsoft.Compute/virtualMachines 2
Location for the resource should not be hardcoded, it should be parameterized and should refer from Resource Group's location i.e. [resourceGroup().location]   Microsoft.Compute/virtualMachines/extensions 2
Location for the resource should not be hardcoded, it should be parameterized and should refer from Resource Group's location i.e. [resourceGroup().location]   Microsoft.Compute/virtualMachines/extensions 2
Location for the resource should not be hardcoded, it should be parameterized and should refer from Resource Group's location i.e. [resourceGroup().location]   Microsoft.Compute/virtualMachines/extensions 2
Location for the resource should not be hardcoded, it should be parameterized and should refer from Resource Group's location i.e. [resourceGroup().location]   Microsoft.Compute/virtualMachines/extensions 2
Location for the resource should not be hardcoded, it should be parameterized and should refer from Resource Group's location i.e. [resourceGroup().location]   Microsoft.Compute/virtualMachines/extensions 2
Location for the resource should not be hardcoded, it should be parameterized and should refer from Resource Group's location i.e. [resourceGroup().location]   Microsoft.Compute/virtualMachines/extensions 2
Location for the resource should not be hardcoded, it should be parameterized and should refer from Resource Group's location i.e. [resourceGroup().location]   Microsoft.Compute/virtualMachines/extensions 2
Your current API Version i.e.2017-05-10 for the resource Microsoft.Resources/deployments is outdatedconsider updating to new recent version available i.e. 2022-09-01 or 2021-04-01 Microsoft.Resources/deployments 2
Location for the resource should not be hardcoded, it should be parameterized and should refer from Resource Group's location i.e. [resourceGroup().location]   Microsoft.Compute/virtualMachines/extensions 2
Location for the resource should not be hardcoded, it should be parameterized and should refer from Resource Group's location i.e. [resourceGroup().location]   Microsoft.Compute/virtualMachines/extensions 2
It is recommended to use tags for your resource, which is currently missing   Microsoft.Compute/availabilitySets 1
To help other contributors understand the purpose of the resource, specify comments for each resource in the template   Microsoft.Compute/availabilitySets 1
It is recommended to parameterized your tag and make it as object type Microsoft.Compute/availabilitySets 1
It is recommended to use tags for your resource, which is currently missing   Microsoft.Network/publicIPAddresses 1
To help other contributors understand the purpose of the resource, specify comments for each resource in the template   Microsoft.Network/publicIPAddresses 1
It is recommended to parameterized your tag and make it as object type Microsoft.Network/publicIPAddresses 1
It is recommended to use tags for your resource, which is currently missing   Microsoft.Network/networkInterfaces 1
To help other contributors understand the purpose of the resource, specify comments for each resource in the template   Microsoft.Network/networkInterfaces 1
It is recommended to parameterized your tag and make it as object type Microsoft.Network/networkInterfaces 1
It is recommended to use tags for your resource, which is currently missing   Microsoft.Resources/deployments 1
To help other contributors understand the purpose of the resource, specify comments for each resource in the template   Microsoft.Resources/deployments 1
It is recommended to parameterized your tag and make it as object type Microsoft.Resources/deployments 1
It is recommended to use below property for your resource Microsoft.Compute/virtualMachines { "priority": "Spot" }Using Azure Spot Virtual Machines allows you to take advantage of our unused capacity at a significant cost savings. At any point in time when Azure needs the capacity back, the Azure infrastructure will evict Azure Spot Virtual Machines. Therefore, Azure Spot Virtual Machines are great for workloads that can handle interruptions like batch processing jobs, dev/test environments, large compute workloads, and more   Microsoft.Compute/virtualMachines 1
To help other contributors understand the purpose of the resource, specify comments for each resource in the template   Microsoft.Compute/virtualMachines 1
Azure Backup should be enabled for virtual machines   Microsoft.Compute/virtualMachines 1
Use B-series VMs, B-series VM are used for typically idle applications that have sudden usage bursts. B-series VMs use baseline-level CPU power having you paying only for the minimal usage. When there’s a sudden burst, CPU power increases and you pay extra for the extra used capacity.   Microsoft.Compute/virtualMachines 1
It is recommended to parameterized your tag and make it as object type Microsoft.Compute/virtualMachines 1
It is recommended to use tags for your resource, which is currently missing   Microsoft.Compute/virtualMachines/extensions 1
To help other contributors understand the purpose of the resource, specify comments for each resource in the template   Microsoft.Compute/virtualMachines/extensions 1
It is recommended to parameterized your tag and make it as object type Microsoft.Compute/virtualMachines/extensions 1
It is recommended to use tags for your resource, which is currently missing   Microsoft.Compute/virtualMachines/extensions 1
To help other contributors understand the purpose of the resource, specify comments for each resource in the template   Microsoft.Compute/virtualMachines/extensions 1
It is recommended to parameterized your tag and make it as object type Microsoft.Compute/virtualMachines/extensions 1
It is recommended to use tags for your resource, which is currently missing   Microsoft.Compute/virtualMachines/extensions 1
To help other contributors understand the purpose of the resource, specify comments for each resource in the template   Microsoft.Compute/virtualMachines/extensions 1
It is recommended to parameterized your tag and make it as object type Microsoft.Compute/virtualMachines/extensions 1
It is recommended to use tags for your resource, which is currently missing   Microsoft.Compute/virtualMachines/extensions 1
To help other contributors understand the purpose of the resource, specify comments for each resource in the template   Microsoft.Compute/virtualMachines/extensions 1
It is recommended to parameterized your tag and make it as object type Microsoft.Compute/virtualMachines/extensions 1
It is recommended to use tags for your resource, which is currently missing   Microsoft.Compute/virtualMachines/extensions 1
To help other contributors understand the purpose of the resource, specify comments for each resource in the template   Microsoft.Compute/virtualMachines/extensions 1
It is recommended to parameterized your tag and make it as object type Microsoft.Compute/virtualMachines/extensions 1
It is recommended to use tags for your resource, which is currently missing   Microsoft.Compute/virtualMachines/extensions 1
To help other contributors understand the purpose of the resource, specify comments for each resource in the template   Microsoft.Compute/virtualMachines/extensions 1
It is recommended to parameterized your tag and make it as object type Microsoft.Compute/virtualMachines/extensions 1
It is recommended to use tags for your resource, which is currently missing   Microsoft.Compute/virtualMachines/extensions 1
To help other contributors understand the purpose of the resource, specify comments for each resource in the template   Microsoft.Compute/virtualMachines/extensions 1
It is recommended to parameterized your tag and make it as object type Microsoft.Compute/virtualMachines/extensions 1
It is recommended to use tags for your resource, which is currently missing   Microsoft.Resources/deployments 1
To help other contributors understand the purpose of the resource, specify comments for each resource in the template   Microsoft.Resources/deployments 1
It is recommended to parameterized your tag and make it as object type Microsoft.Resources/deployments 1
It is recommended to use tags for your resource, which is currently missing   Microsoft.Compute/virtualMachines/extensions 1
To help other contributors understand the purpose of the resource, specify comments for each resource in the template   Microsoft.Compute/virtualMachines/extensions 1
It is recommended to parameterized your tag and make it as object type Microsoft.Compute/virtualMachines/extensions 1
It is recommended to use tags for your resource, which is currently missing   Microsoft.Compute/virtualMachines/extensions 1
To help other contributors understand the purpose of the resource, specify comments for each resource in the template   Microsoft.Compute/virtualMachines/extensions 1
It is recommended to parameterized your tag and make it as object type Microsoft.Compute/virtualMachines/extensions 1

TemplateParameterHealthResult

Message Severity
Define default values for parameters that aren't sensitive. By specifying a default value, it's easier to deploy the template, and users of your template see an example of an appropriate value i.e. tagBillingIdentifierRead More 1
Define default values for parameters that aren't sensitive. By specifying a default value, it's easier to deploy the template, and users of your template see an example of an appropriate value i.e. adminUsernameRead More 1
Define default values for parameters that aren't sensitive. By specifying a default value, it's easier to deploy the template, and users of your template see an example of an appropriate value i.e. dnsLabelPrefixRead More 1
Define default values for parameters that aren't sensitive. By specifying a default value, it's easier to deploy the template, and users of your template see an example of an appropriate value i.e. azureAutomationAccountEndPointRead More 1
Define default values for parameters that aren't sensitive. By specifying a default value, it's easier to deploy the template, and users of your template see an example of an appropriate value i.e. vmVnetSubnetResourceIdRead More 1
It is recommended to make your parameter as camel case, wherever possible for i.e. zoneRead More 1

TemplateVariableHealthResult

Message Severity
It is recommended to make your variable as camel case, wherever possible for e.g. environmentRead More 1

TemplateOthersHealthResult

Message Severity
Current schema version is not valid, Please change the version year to 2019-04-01 or greater 2

Sustainable Advisor details

Message ResourceType Severity
It is recommended to implement Auto-Shutdown option for your virtual Machine if you are using non production or Dev/Test lab virtual machines, this will enable us to save compute power   Microsoft.Compute/virtualMachines 2
It is recommended to use below property for your resource Microsoft.Compute/virtualMachines { "priority": "Spot" }Using Azure Spot Virtual Machines allows you to take advantage of our unused capacity at a significant cost savings. At any point in time when Azure needs the capacity back, the Azure infrastructure will evict Azure Spot Virtual Machines. Therefore, Azure Spot Virtual Machines are great for workloads that can handle interruptions like batch processing jobs, dev/test environments, large compute workloads, and more   Microsoft.Compute/virtualMachines 1
Use B-series VMs, B-series VM are used for typically idle applications that have sudden usage bursts. B-series VMs use baseline-level CPU power having you paying only for the minimal usage. When there’s a sudden burst, CPU power increases and you pay extra for the extra used capacity.   Microsoft.Compute/virtualMachines 1