Úvod do Terraformu

Dokončeno

Opensourcový nástroj IaC Terraformu umožňuje definovat a zřizovat cloudovou infrastrukturu pomocí konfiguračního jazyka vysoké úrovně označovaného jako HCL (HashiCorp Configuration Language). Terraform konfiguruje infrastrukturu v konfiguračních souborech, které popisují požadovaný stav vaší infrastruktury. Terraform může spravovat jakoukoli infrastrukturu, jako jsou veřejné cloudy, privátní cloudy a služby SaaS, pomocí poskytovatelů Terraformu.

Poskytovatelé Terraformu pro infrastrukturu Azure

Několik poskytovatelů Terraformu umožňuje správu infrastruktury Azure:

  • AzureRM: Správa prostředků Azure Resource Manageru, jako jsou virtuální počítače, účty úložiště a síťová rozhraní.
  • AzureAD: Správa prostředků Microsoft Entra, jako jsou skupiny, uživatelé, instanční objekty a aplikace.
  • AzureDevOps: Správa prostředků Azure DevOps, jako jsou agenti, úložiště, projekty, kanály a dotazy.
  • AzAPI: Správa prostředků Azure pomocí rozhraní API Azure Resource Manageru přímo. Tento poskytovatel doplňuje poskytovatele AzureRM tím, že umožňuje správu nejnovějších prostředků Azure.
  • Azure Stack: Správa prostředků Služby Azure Stack, jako jsou virtuální počítače, DNS, virtuální sítě a úložiště.

Vytvoření účtu úložiště

Všechny konfigurace Terraformu musí obsahovat provider blok. Následující kód HCL určuje poskytovatele Azure Resource Manageru (azurerm). V umístění je definována eastus pojmenovaná storageaccountexamplerg skupina prostředků Azure. Účet úložiště Azure se vytvoří v rámci skupiny prostředků. Název účtu úložiště je prvních 24 znaků čísla vygenerovaného prostřednictvím md5 funkce.

terraform {
  required_version = ">=0.12"
  required_providers {
    azurerm = {
      source  = "hashicorp/azurerm"
      version = "~>2.0"
    }
  }
}
provider "azurerm" {
  features {}
}

resource "azurerm_resource_group" "rg" {
  location = "eastus"
  name     = "storageaccountexamplerg"
}

resource "azurerm_storage_account" "example" {
  name                     = substr(md5(azurerm_resource_group.rg.id), 0, 24)
  resource_group_name      = azurerm_resource_group.rg.name
  location                 = azurerm_resource_group.rg.location
  account_kind             = "StorageV2"
  account_tier             = "Standard"
  account_replication_type = "LRS"
  access_tier              = "Hot"
}

Spuštění kódu Terraformu

Spusťte terraform init stažení požadovaných modulů Azure pro správu prostředků Azure:

terraform init

Spusťte, terraform plan abyste zjistili, jaké akce jsou nezbytné k vytvoření konfigurace, kterou jste zadali v konfiguračních souborech. Spuštění příkazu vytvoří plán spuštění, ale nepoužije ho. 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ů.

terraform plan -out main.tfplan

Jakmile ověříte plán provádění, spusťte terraform apply ho a použijte ho. Tento příkaz vytvoří definované prostředky.

terraform apply main.tfplan

Ověření účtu úložiště

K ověření účtu úložiště Azure můžete použít terraform state show příkaz. Tento příkaz zobrazí aktuální stav zadaného prostředku.

V případě účtu úložiště, který jste vytvořili v tomto modulu, zobrazí příkaz vygenerovaný název spolu s úplným seznamem atributů účtu úložiště a jejich hodnot.

terraform state show 'azurerm_storage_account.example'

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

Pokud už nepotřebujete prostředky, které jste vytvořili v tomto modulu, spusťte terraform apply s příznakem -destroy :

terraform plan -destroy -out main.destroy.tfplan

Spuštěním použijte terraform apply plán provádění:

terraform apply main.destroy.tfplan