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.

2. Implementera koden

  1. Skapa en katalog där du kan testa Terraform-exempelkoden och göra den till den aktuella katalogen.

  2. Skapa en fil med main.tf namnet 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_password variabeln 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).

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 plan skapar 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 -out valfria parametern kan du ange en utdatafil för planen. Med -out parametern 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 apply ovan förutsätter att du tidigare körde terraform plan -out main.tfplan .
  • Om du har angett ett annat filnamn för -out parametern använder du samma filnamn i anropet till terraform apply .
  • Om du inte använder parametern -out anropar du helt enkelt terraform apply utan några parametrar.

Felsöka Terraform på Azure

Felsöka vanliga problem när du använder Terraform på Azure

Nästa steg