Konfigurera ett Azure VM-kluster med Terraform
Den här artikeln visar Terraform-exempelkod för att skapa ett VM-kluster i Azure.
I den här artikeln kan du se hur du:
- Konfigurera ett kluster för virtuella Azure-datorer
1. Konfigurera din miljö
- Azure-prenumeration: Om du inte har någon Azure-prenumeration kan du skapa ett kostnadsfritt konto innan du börjar.
Konfigurera Terraform: Om du inte redan har gjort det konfigurerar du Terraform med något av följande alternativ:
2. Implementera koden
Skapa en katalog där du kan testa Terraform-exempelkoden och göra den till den aktuella katalogen.
Skapa en fil med
main.tfnamnet och infoga följande kod:module "windowsservers" { source = "Azure/compute/azurerm" resource_group_name = azurerm_resource_group.rg.name is_windows_image = true vm_hostname = "mywinvm" // Line can be removed if only one VM module per resource group admin_password = "ComplxP@ssw0rd!" // See note following code about storing passwords in config files vm_os_simple = "WindowsServer" public_ip_dns = ["winsimplevmips"] // Change to a unique name per data center region vnet_subnet_id = module.network.vnet_subnets[0] depends_on = [azurerm_resource_group.rg] } module "network" { source = "Azure/network/azurerm" resource_group_name = azurerm_resource_group.rg.name subnet_prefixes = ["10.0.1.0/24"] subnet_names = ["subnet1"] depends_on = [azurerm_resource_group.rg] } output "windows_vm_public_name" { value = module.windowsservers.public_ip_dns_name } output "vm_public_ip" { value = module.windowsservers.public_ip_address } output "vm_private_ips" { value = module.windowsservers.network_interface_private_ip }Viktiga punkter:
- I föregående kodexempel tilldelas
admin_passwordvariabeln ett literalvärde för enkelhetens skull. Det finns många sätt att lagra känsliga data, till exempel lösenord. Beslutet om hur du vill skydda dina data handlar om enskilda val som rör just din miljö och bekvämlighetsnivå som exponerar dessa data. Som ett exempel på risken kan lagring av en fil som den här i källkontrollen potentiellt resultera i att lösenordet ses av andra. För mer information om det här ämnet har HashiCorp dokumenterat olika sätt att deklarera indatavariabler och tekniker för att hantera känsliga data (till exempel lösenord).
- I föregående kodexempel tilldelas
3. Initiera Terraform
Kör terraform init för att initiera Terraform-distributionen.
terraform init
Viktiga punkter:
- Det här kommandot laddar ned de Azure-moduler som krävs för att skapa en Azure-resursgrupp.
4. Skapa en Terraform-körningsplan
Kör terraform-plan för att skapa en körningsplan.
terraform plan -out main.tfplan
Viktiga punkter:
- Kommandot
terraform planskapar en körningsplan, men kör den inte. I stället avgör den vilka åtgärder som krävs för att skapa konfigurationen som anges i konfigurationsfilerna. Med det här mönstret kan du kontrollera om körningsplanen matchar dina förväntningar innan du gör några ändringar i faktiska resurser. - Med den
-outvalfria parametern kan du ange en utdatafil för planen. Med-outparametern ser du till att den plan som du granskade är exakt vad som tillämpas. - Mer information om att bevara körningsplaner och säkerhet finns i säkerhetsvarningsavsnittet.
5. Tillämpa en Terraform-körningsplan
Kör terraform apply för att tillämpa körningsplanen på din molninfrastruktur.
terraform apply main.tfplan
Viktiga punkter:
- Kommandot
terraform applyovan förutsätter att du tidigare kördeterraform plan -out main.tfplan. - Om du har angett ett annat filnamn för
-outparametern använder du samma filnamn i anropet tillterraform apply. - Om du inte använder parametern
-outanropar du helt enkeltterraform applyutan några parametrar.
Felsöka Terraform på Azure
Felsöka vanliga problem när du använder Terraform på Azure