Rychlý start: Vytvoření zóny a záznamu Azure DNS pomocí Terraformu

Tento článek ukazuje, jak pomocí Terraformu vytvořit zónu Azure DNS a záznam A v této zóně.

Terraform umožňuje definici, verzi Preview a nasazení cloudové infrastruktury. Pomocí Terraformu vytvoříte konfigurační soubory pomocí syntaxe HCL. Syntaxe HCL umožňuje určit poskytovatele cloudu, například Azure, a prvky, které tvoří vaši cloudovou infrastrukturu. Po vytvoření konfiguračních souborů vytvoříte plán provádění , který vám umožní zobrazit náhled změn infrastruktury před jejich nasazením. Po ověření změn použijete plán spuštění k nasazení infrastruktury.

V tomto článku získáte informace o těchto tématech:

Požadavky

Implementace kódu Terraformu

  1. Vytvořte adresář, ve kterém otestujete a spustíte ukázkový kód Terraformu a nastavíte ho jako aktuální adresář.

  2. Vytvořte soubor s názvem providers.tf a vložte následující kód:

    terraform {
      required_version = ">=1.2"
      required_providers {
        azurerm = {
          source  = "hashicorp/azurerm"
          version = "~>3.0"
        }
        random = {
          source  = "hashicorp/random"
          version = "~>3.0"
        }
      }
    }
    provider "azurerm" {
      features {}
    }
    
  3. Vytvořte soubor s názvem main.tf a vložte následující kód:

    resource "random_pet" "rg_name" {
      prefix = var.resource_group_name_prefix
    }
    
    resource "azurerm_resource_group" "rg" {
      name     = random_pet.rg_name.id
      location = var.resource_group_location
    }
    
    resource "random_string" "azurerm_dns_zone_name" {
      length  = 13
      lower   = true
      numeric = false
      special = false
      upper   = false
    }
    
    resource "azurerm_dns_zone" "zone" {
      name = (
        var.dns_zone_name != null ?
        var.dns_zone_name :
        "www.${random_string.azurerm_dns_zone_name.result}.azurequickstart.org"
      )
      resource_group_name = azurerm_resource_group.rg.name
    }
    
    resource "azurerm_dns_a_record" "record" {
      name                = "www"
      resource_group_name = azurerm_resource_group.rg.name
      zone_name           = azurerm_dns_zone.zone.name
      ttl                 = var.dns_ttl
      records             = var.dns_records
    }
    
  4. Vytvořte soubor s názvem variables.tf a vložte následující kód:

    variable "resource_group_location" {
      type        = string
      default     = "eastus"
      description = "Location for all resources."
    }
    
    variable "resource_group_name_prefix" {
      type        = string
      default     = "rg"
      description = "Prefix of the resource group name that's combined with a random value so name is unique in your Azure subscription."
    }
    
    variable "dns_zone_name" {
      type        = string
      default     = null
      description = "Name of the DNS zone."
    }
    
    variable "dns_ttl" {
      type        = number
      default     = 3600
      description = "Time To Live (TTL) of the DNS record (in seconds)."
    }
    
    variable "dns_records" {
      type        = list(string)
      default     = ["1.2.3.4", "1.2.3.5"]
      description = "List of IPv4 addresses."
    }
    
  5. Vytvořte soubor s názvem outputs.tf a vložte následující kód:

    output "resource_group_name" {
      value = azurerm_resource_group.rg.name
    }
    
    output "dns_zone_name" {
      value = azurerm_dns_zone.zone.name
    }
    
    output "name_servers" {
      value = azurerm_dns_zone.zone.name_servers
    }
    

Inicializace Terraformu

Spuštěním příkazu terraform init inicializujete nasazení Terraformu. Tento příkaz stáhne poskytovatele Azure potřebného ke správě prostředků Azure.

terraform init -upgrade

Klíčové body:

  • Parametr -upgrade upgraduje potřebné moduly plug-in poskytovatele na nejnovější verzi, která vyhovuje omezením verzí konfigurace.

Vytvoření plánu provádění Terraformu

Spuštěním plánu terraformu vytvořte plán provádění.

terraform plan -out main.tfplan

Klíčové body:

  • Příkaz terraform plan vytvoří plán provádění, ale nespustí ho. Místo toho určí, jaké akce jsou nezbytné k vytvoření konfigurace zadané v konfiguračních souborech. Tento model umožňuje ověřit, jestli plán provádění odpovídá vašim očekáváním, než provedete jakékoli změny skutečných prostředků.
  • Volitelný -out parametr umožňuje zadat výstupní soubor pro plán. Použití parametru -out zajistí, že plán, který jste zkontrolovali, je přesně ten, který se použije.
  • Další informace o trvalých plánech provádění a zabezpečení najdete v části upozornění zabezpečení.

Použití plánu spuštění Terraformu

Spuštěním příkazu terraform apply použijte plán spuštění pro vaši cloudovou infrastrukturu.

terraform apply main.tfplan

Klíčové body:

  • Ukázkový terraform apply příkaz předpokládá, že jste dříve spustili terraform plan -out main.tfplanpříkaz .
  • Pokud jste pro parametr zadali -out jiný název souboru, použijte stejný název souboru ve volání terraform apply.
  • Pokud jste parametr nepoužíli, zavolejte terraform apply ho -out bez jakýchkoli parametrů.

Ověření výsledků

  1. Získejte název skupiny prostředků Azure.

    resource_group_name=$(terraform output -raw resource_group_name)
    
  2. Získejte název zóny DNS.

    dns_zone_name=$(terraform output -raw dns_zone_name)
    
  3. Spuštěním příkazu az network dns zone show zobrazte informace o nové zóně DNS.

    az network dns zone show \
        --resource-group $resource_group_name \
        --name $dns_zone_name
    

Vyčištění prostředků

Pokud už prostředky vytvořené prostřednictvím Terraformu nepotřebujete, proveďte následující kroky:

  1. Spusťte plán terraformudestroy a zadejte příznak.

    terraform plan -destroy -out main.destroy.tfplan
    

    Klíčové body:

    • Příkaz terraform plan vytvoří plán provádění, ale nespustí ho. Místo toho určí, jaké akce jsou nezbytné k vytvoření konfigurace zadané v konfiguračních souborech. Tento model umožňuje ověřit, jestli plán provádění odpovídá vašim očekáváním, než provedete jakékoli změny skutečných prostředků.
    • Volitelný -out parametr umožňuje zadat výstupní soubor pro plán. Použití parametru -out zajistí, že plán, který jste zkontrolovali, je přesně ten, který se použije.
    • Další informace o trvalých plánech provádění a zabezpečení najdete v části upozornění zabezpečení.
  2. Spuštěním příkazu terraform apply použijte plán provádění.

    terraform apply main.destroy.tfplan
    

Řešení potíží s Terraformem v Azure

Řešení běžných problémů při používání Terraformu v Azure

Další kroky