Konfigurowanie usługi Azure Virtual Desktop przy użyciu programu Terraform
Artykuł przetestowany z następującymi wersjami dostawcy programu Terraform i programu Terraform:
Narzędzie Terraform umożliwia definiowanie, wyświetlanie wersji zapoznawczej i wdrażanie infrastruktury chmury. Za pomocą narzędzia Terraform tworzysz pliki konfiguracji przy użyciu składni HCL. Składnia listy HCL umożliwia określenie dostawcy chmury — takiego jak platforma Azure — oraz elementów tworzących infrastrukturę chmury. Po utworzeniu plików konfiguracji utworzysz plan wykonywania, który umożliwia wyświetlenie podglądu zmian infrastruktury przed ich wdrożeniem. Po zweryfikowaniu zmian należy zastosować plan wykonywania w celu wdrożenia infrastruktury.
Ten artykuł zawiera omówienie sposobu wdrażania środowiska usługi Azure Virtual Desktop usługi ARM przy użyciu narzędzia Terraform, a nie klasycznego usługi AVD.
Istnieje kilka wymagań wstępnych dotyczących usługi Azure Virtual Desktop
Dopiero zaczynasz korzystać z usługi Azure Virtual Desktop? Zacznij od tematu Co to jest usługa Azure Virtual Desktop?
Zakłada się, że odpowiednia podstawa platformy jest już skonfigurowana, co może lub nie jest podstawą platformy strefy docelowej w skali przedsiębiorstwa.
W tym artykule omówiono sposób wykonywania następujących zadań:
- Tworzenie obszaru roboczego usługi Azure Virtual Desktop przy użyciu narzędzia Terraform
- Tworzenie puli hostów usługi Azure Virtual Desktop za pomocą narzędzia Terraform
- Tworzenie grupy aplikacji klasycznych platformy Azure za pomocą narzędzia Terraform
- Kojarzenie obszaru roboczego i grupy aplikacji klasycznych
1. Konfigurowanie środowiska
- Subskrypcja platformy Azure: jeśli nie masz subskrypcji platformy Azure, przed rozpoczęciem utwórz bezpłatne konto.
Skonfiguruj narzędzie Terraform: jeśli jeszcze tego nie zrobiono, skonfiguruj program Terraform przy użyciu jednej z następujących opcji:
- Konfigurowanie narzędzia Terraform w usłudze Azure Cloud Shell przy użyciu powłoki Bash
- Konfigurowanie programu Terraform w usłudze Azure Cloud Shell przy użyciu programu PowerShell
- Konfigurowanie programu Terraform w systemie Windows przy użyciu powłoki Bash
- Konfigurowanie programu Terraform w systemie Windows przy użyciu programu PowerShell
2. Implementowanie kodu programu Terraform
Utwórz katalog, w którym chcesz przetestować przykładowy kod narzędzia Terraform i ustawić go jako bieżący katalog.
Utwórz plik o nazwie
providers.tf
i wstaw następujący kod:terraform { required_providers { azurerm = { source = "hashicorp/azurerm" version = "~>2.0" } azuread = { source = "hashicorp/azuread" } } } provider "azurerm" { features {} }
Utwórz plik o nazwie
main.tf
i wstaw następujący kod:# Resource group name is output when execution plan is applied. resource "azurerm_resource_group" "sh" { name = var.rg_name location = var.resource_group_location } # Create AVD workspace resource "azurerm_virtual_desktop_workspace" "workspace" { name = var.workspace resource_group_name = azurerm_resource_group.sh.name location = azurerm_resource_group.sh.location friendly_name = "${var.prefix} Workspace" description = "${var.prefix} Workspace" } # Create AVD host pool resource "azurerm_virtual_desktop_host_pool" "hostpool" { resource_group_name = azurerm_resource_group.sh.name location = azurerm_resource_group.sh.location name = var.hostpool friendly_name = var.hostpool validate_environment = true custom_rdp_properties = "audiocapturemode:i:1;audiomode:i:0;" description = "${var.prefix} Terraform HostPool" type = "Pooled" maximum_sessions_allowed = 16 load_balancer_type = "DepthFirst" #[BreadthFirst DepthFirst] } resource "azurerm_virtual_desktop_host_pool_registration_info" "registrationinfo" { hostpool_id = azurerm_virtual_desktop_host_pool.hostpool.id expiration_date = var.rfc3339 } # Create AVD DAG resource "azurerm_virtual_desktop_application_group" "dag" { resource_group_name = azurerm_resource_group.sh.name host_pool_id = azurerm_virtual_desktop_host_pool.hostpool.id location = azurerm_resource_group.sh.location type = "Desktop" name = "${var.prefix}-dag" friendly_name = "Desktop AppGroup" description = "AVD application group" depends_on = [azurerm_virtual_desktop_host_pool.hostpool, azurerm_virtual_desktop_workspace.workspace] } # Associate Workspace and DAG resource "azurerm_virtual_desktop_workspace_application_group_association" "ws-dag" { application_group_id = azurerm_virtual_desktop_application_group.dag.id workspace_id = azurerm_virtual_desktop_workspace.workspace.id }
Utwórz plik o nazwie
variables.tf
i wstaw następujący kod:variable "resource_group_location" { default = "eastus" description = "Location of the resource group." } variable "rg_name" { type = string default = "rg-avd-resources" description = "Name of the Resource group in which to deploy service objects" } variable "workspace" { type = string description = "Name of the Azure Virtual Desktop workspace" default = "AVD TF Workspace" } variable "hostpool" { type = string description = "Name of the Azure Virtual Desktop host pool" default = "AVD-TF-HP" } variable "rfc3339" { type = string default = "2022-03-30T12:43:13Z" description = "Registration token expiration" } variable "prefix" { type = string default = "avdtf" description = "Prefix of the name of the AVD machine(s)" }
Utwórz plik o nazwie
output.tf
i wstaw następujący kod:output "azure_virtual_desktop_compute_resource_group" { description = "Name of the Resource group in which to deploy session host" value = azurerm_resource_group.sh.name } output "azure_virtual_desktop_host_pool" { description = "Name of the Azure Virtual Desktop host pool" value = azurerm_virtual_desktop_host_pool.hostpool.name } output "azurerm_virtual_desktop_application_group" { description = "Name of the Azure Virtual Desktop DAG" value = azurerm_virtual_desktop_application_group.dag.name } output "azurerm_virtual_desktop_workspace" { description = "Name of the Azure Virtual Desktop workspace" value = azurerm_virtual_desktop_workspace.workspace.name } output "location" { description = "The Azure region" value = azurerm_resource_group.sh.location } output "AVD_user_groupname" { description = "Azure Active Directory Group for AVD users" value = azuread_group.aad_group.display_name }
3. Inicjowanie programu Terraform
Uruchom narzędzie terraform init , aby zainicjować wdrożenie narzędzia Terraform. To polecenie pobiera dostawcę platformy Azure wymaganego do zarządzania zasobami platformy Azure.
terraform init -upgrade
Kluczowe punkty:
- Parametr
-upgrade
uaktualnia niezbędne wtyczki dostawcy do najnowszej wersji, która jest zgodna z ograniczeniami wersji konfiguracji.
4. Tworzenie planu wykonywania programu Terraform
Uruchom plan terraform, aby utworzyć plan wykonania.
terraform plan -out main.tfplan
Kluczowe punkty:
- Polecenie
terraform plan
tworzy plan wykonania, ale nie wykonuje go. Zamiast tego określa, jakie akcje są niezbędne do utworzenia konfiguracji określonej w plikach konfiguracji. Ten wzorzec umożliwia sprawdzenie, czy plan wykonania jest zgodny z oczekiwaniami przed wprowadzeniem jakichkolwiek zmian w rzeczywistych zasobach. - Opcjonalny
-out
parametr umożliwia określenie pliku wyjściowego dla planu. Użycie parametru-out
gwarantuje, że sprawdzony plan jest dokładnie tym, co jest stosowane.
5. Stosowanie planu wykonywania programu Terraform
Uruchom narzędzie terraform, aby zastosować plan wykonania do infrastruktury chmury.
terraform apply main.tfplan
Kluczowe punkty:
- Przykładowe
terraform apply
polecenie zakłada, że wcześniej uruchomionoterraform plan -out main.tfplan
polecenie . - Jeśli określono inną nazwę pliku parametru
-out
, użyj tej samej nazwy pliku w wywołaniu metodyterraform apply
. - Jeśli parametr nie został użyty, wywołaj metodę
-out
terraform apply
bez żadnych parametrów.
6. Sprawdź wyniki
- W witrynie Azure Portal wybierz pozycję Azure Virtual Desktop.
- Wybierz pozycję Pule hostów , a następnie nazwę utworzonego zasobu puli.
- Wybierz pozycję Hosty sesji, a następnie sprawdź, czy host sesji znajduje się na liście.
7. Czyszczenie zasobów
Jeśli zasoby utworzone za pomocą narzędzia Terraform nie są już potrzebne, wykonaj następujące czynności:
Uruchom plan terraform i określ flagę
destroy
.terraform plan -destroy -out main.destroy.tfplan
Kluczowe punkty:
- Polecenie
terraform plan
tworzy plan wykonania, ale nie wykonuje go. Zamiast tego określa, jakie akcje są niezbędne do utworzenia konfiguracji określonej w plikach konfiguracji. Ten wzorzec umożliwia sprawdzenie, czy plan wykonania jest zgodny z oczekiwaniami przed wprowadzeniem jakichkolwiek zmian w rzeczywistych zasobach. - Opcjonalny
-out
parametr umożliwia określenie pliku wyjściowego dla planu. Użycie parametru-out
gwarantuje, że sprawdzony plan jest dokładnie tym, co jest stosowane.
- Polecenie
Uruchom narzędzie terraform zastosuj, aby zastosować plan wykonania.
terraform apply main.destroy.tfplan
Rozwiązywanie problemów z programem Terraform na platformie Azure
Rozwiązywanie typowych problemów podczas korzystania z narzędzia Terraform na platformie Azure
Następne kroki
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla