Deploy Azure Virtual Desktop Host Pool Via Terraform
I am writing terraform script to deploy Azure Virtual Desktop Host Pool. When creating host pool I need to specify session host related configurations such as number of VMs, VM image, local administrator password, Join to EntraID …etc.
In the terraform provider documentation it only says like this. No other information is provided as well.
vm_template – (Optional) A VM template for session hosts configuration within hostpool. This is a JSON string.
There was no official documentation. So what I did was get ARM template for Azure Virtual Desktop and pass the required values as JSON as according the parameters defined in the ARM template.
resource "azurerm_virtual_desktop_host_pool" "example" {
location = var.rglocation
resource_group_name = var.rgname
name = var.hostpoolname
validate_environment = false
preferred_app_group_type = "Desktop"
type = "Pooled"
load_balancer_type = var.loadbalncealgorithm
vm_template = <<EOF
{
"vmNamePrefix": "${var.vmNamePrefix}",
"vmLocation": "${var.rglocation}",
"aadjoin": "true",
"intune": "false",
"vmImageType": "Gallery",
"vmSize": "Standard_B2s",
"vmNumberOfInstances": "${var.vmcount}",
"vmDiskType": "StandardSSD_LRS",
"vmDiskSizeGB": "128",
"securityType": "TrustedLaunch",
"existingVnetName": "${var.vnetname}",
"existingSubnetName": "${var.privsubname}",
"vmGalleryImageOffer": "windows-10",
"vmGalleryImagePublisher": "microsoftwindowsdesktop",
"vmGalleryImageSKU": "win10-21h2-avd-g2",
"vmAdministratorAccountUsername": "${var.localadminusername}",
"vmAdministratorAccountPassword": "PasswordForLocalAdmin"
}
EOF
maximum_sessions_allowed = var.sessionllimit
}
However when terraform apply run it shows as successful but does not created the virtual machines as intended. Only host pool was created.
Anyone knows how to solve this issue.
Roshan Thamalaka is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.