2022-01-04 03:38:18 +03:00
|
|
|
locals {
|
2022-03-25 21:54:22 +03:00
|
|
|
registration_token = azurerm_virtual_desktop_host_pool_registration_info.registrationinfo.token
|
2022-01-04 03:38:18 +03:00
|
|
|
}
|
|
|
|
|
|
|
|
resource "random_string" "AVD_local_password" {
|
|
|
|
count = var.rdsh_count
|
|
|
|
length = 16
|
|
|
|
special = true
|
|
|
|
min_special = 2
|
|
|
|
override_special = "*!@#?"
|
|
|
|
}
|
|
|
|
|
2022-03-25 21:54:22 +03:00
|
|
|
resource "azurerm_resource_group" "rg" {
|
|
|
|
name = var.rg
|
|
|
|
location = var.resource_group_location
|
|
|
|
}
|
|
|
|
|
2022-01-04 03:38:18 +03:00
|
|
|
resource "azurerm_network_interface" "avd_vm_nic" {
|
|
|
|
count = var.rdsh_count
|
|
|
|
name = "${var.prefix}-${count.index + 1}-nic"
|
2022-03-25 21:54:22 +03:00
|
|
|
resource_group_name = azurerm_resource_group.rg.name
|
|
|
|
location = azurerm_resource_group.rg.location
|
2022-01-04 03:38:18 +03:00
|
|
|
|
|
|
|
ip_configuration {
|
|
|
|
name = "nic${count.index + 1}_config"
|
|
|
|
subnet_id = azurerm_subnet.subnet.id
|
|
|
|
private_ip_address_allocation = "dynamic"
|
|
|
|
}
|
|
|
|
|
|
|
|
depends_on = [
|
|
|
|
azurerm_resource_group.rg
|
|
|
|
]
|
|
|
|
}
|
|
|
|
|
|
|
|
resource "azurerm_windows_virtual_machine" "avd_vm" {
|
|
|
|
count = var.rdsh_count
|
|
|
|
name = "${var.prefix}-${count.index + 1}"
|
2022-03-25 21:54:22 +03:00
|
|
|
resource_group_name = azurerm_resource_group.rg.name
|
|
|
|
location = azurerm_resource_group.rg.location
|
2022-01-04 03:38:18 +03:00
|
|
|
size = var.vm_size
|
|
|
|
network_interface_ids = ["${azurerm_network_interface.avd_vm_nic.*.id[count.index]}"]
|
|
|
|
provision_vm_agent = true
|
|
|
|
admin_username = var.local_admin_username
|
|
|
|
admin_password = var.local_admin_password
|
|
|
|
|
|
|
|
os_disk {
|
|
|
|
name = "${lower(var.prefix)}-${count.index + 1}"
|
|
|
|
caching = "ReadWrite"
|
|
|
|
storage_account_type = "Standard_LRS"
|
|
|
|
}
|
|
|
|
|
|
|
|
source_image_reference {
|
|
|
|
publisher = "MicrosoftWindowsDesktop"
|
|
|
|
offer = "Windows-10"
|
|
|
|
sku = "20h2-evd"
|
|
|
|
version = "latest"
|
|
|
|
}
|
|
|
|
|
|
|
|
depends_on = [
|
|
|
|
azurerm_resource_group.rg,
|
|
|
|
azurerm_network_interface.avd_vm_nic
|
|
|
|
]
|
|
|
|
}
|
|
|
|
|
|
|
|
resource "azurerm_virtual_machine_extension" "domain_join" {
|
|
|
|
count = var.rdsh_count
|
|
|
|
name = "${var.prefix}-${count.index + 1}-domainJoin"
|
|
|
|
virtual_machine_id = azurerm_windows_virtual_machine.avd_vm.*.id[count.index]
|
|
|
|
publisher = "Microsoft.Compute"
|
|
|
|
type = "JsonADDomainExtension"
|
|
|
|
type_handler_version = "1.3"
|
|
|
|
auto_upgrade_minor_version = true
|
|
|
|
|
|
|
|
settings = <<SETTINGS
|
|
|
|
{
|
|
|
|
"Name": "${var.domain_name}",
|
|
|
|
"OUPath": "${var.ou_path}",
|
|
|
|
"User": "${var.domain_user_upn}@${var.domain_name}",
|
|
|
|
"Restart": "true",
|
|
|
|
"Options": "3"
|
|
|
|
}
|
|
|
|
SETTINGS
|
|
|
|
|
|
|
|
protected_settings = <<PROTECTED_SETTINGS
|
|
|
|
{
|
|
|
|
"Password": "${var.domain_password}"
|
|
|
|
}
|
|
|
|
PROTECTED_SETTINGS
|
|
|
|
|
|
|
|
lifecycle {
|
|
|
|
ignore_changes = [settings, protected_settings]
|
|
|
|
}
|
|
|
|
|
|
|
|
depends_on = [
|
|
|
|
azurerm_virtual_network_peering.peer1,
|
|
|
|
azurerm_virtual_network_peering.peer2
|
|
|
|
]
|
|
|
|
}
|
|
|
|
|
|
|
|
resource "azurerm_virtual_machine_extension" "vmext_dsc" {
|
|
|
|
count = var.rdsh_count
|
|
|
|
name = "${var.prefix}${count.index + 1}-avd_dsc"
|
|
|
|
virtual_machine_id = azurerm_windows_virtual_machine.avd_vm.*.id[count.index]
|
|
|
|
publisher = "Microsoft.Powershell"
|
|
|
|
type = "DSC"
|
|
|
|
type_handler_version = "2.73"
|
|
|
|
auto_upgrade_minor_version = true
|
|
|
|
|
|
|
|
settings = <<-SETTINGS
|
|
|
|
{
|
2022-10-31 05:30:06 +03:00
|
|
|
"modulesUrl": "https://wvdportalstorageblob.blob.core.windows.net/galleryartifacts/Configuration_09-08-2022.zip",
|
2022-01-04 03:38:18 +03:00
|
|
|
"configurationFunction": "Configuration.ps1\\AddSessionHost",
|
|
|
|
"properties": {
|
|
|
|
"HostPoolName":"${azurerm_virtual_desktop_host_pool.hostpool.name}"
|
|
|
|
}
|
|
|
|
}
|
|
|
|
SETTINGS
|
|
|
|
|
|
|
|
protected_settings = <<PROTECTED_SETTINGS
|
|
|
|
{
|
|
|
|
"properties": {
|
|
|
|
"registrationInfoToken": "${local.registration_token}"
|
|
|
|
}
|
|
|
|
}
|
|
|
|
PROTECTED_SETTINGS
|
|
|
|
|
|
|
|
depends_on = [
|
|
|
|
azurerm_virtual_machine_extension.domain_join,
|
|
|
|
azurerm_virtual_desktop_host_pool.hostpool
|
|
|
|
]
|
|
|
|
}
|