Wprowadzenie do programu Terraform

Ukończone

Narzędzie IaC typu open source programu Terraform umożliwia definiowanie i aprowizowania infrastruktury w chmurze przy użyciu języka konfiguracji wysokiego poziomu znanego jako HashiCorp Configuration Language (HCL). Program Terraform koduje infrastrukturę w plikach konfiguracji, które opisują żądany stan infrastruktury. Narzędzie Terraform może zarządzać dowolną infrastrukturą— taką jak chmury publiczne, chmury prywatne i usługi SaaS — przy użyciu dostawców programu Terraform.

Dostawcy programu Terraform dla infrastruktury platformy Azure

Kilku dostawców programu Terraform umożliwia zarządzanie infrastrukturą platformy Azure:

  • AzureRM: zarządzanie zasobami usługi Azure Resource Manager, takimi jak maszyny wirtualne, konta magazynu i interfejsy sieciowe.
  • AzureAD: zarządzanie zasobami firmy Microsoft Entra, takimi jak grupy, użytkownicy, jednostki usługi i aplikacje.
  • AzureDevOps: zarządzanie zasobami usługi Azure DevOps, takimi jak agenci, repozytoria, projekty, potoki i zapytania.
  • AzAPI: zarządzanie zasobami platformy Azure przy użyciu interfejsów API usługi Azure Resource Manager bezpośrednio. Ten dostawca uzupełnia dostawcę modułu AzureRM, włączając zarządzanie najnowszymi zasobami platformy Azure.
  • Azure Stack: zarządzanie zasobami usługi Azure Stack, takimi jak maszyny wirtualne, dns, sieci wirtualne i magazyn.

Tworzenie konta magazynu

Wszystkie konfiguracje programu Terraform muszą zawierać provider blok. Poniższy kod HCL określa dostawcę usługi Azure Resource Manager (azurerm). Grupa zasobów platformy Azure o nazwie storageaccountexamplerg jest zdefiniowana eastus w lokalizacji. Konto usługi Azure Storage jest tworzone w grupie zasobów. Nazwa konta magazynu to pierwsze 24 znaki liczby wygenerowanej md5 za pośrednictwem funkcji.

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"
}

Uruchamianie kodu narzędzia Terraform

Uruchom polecenie terraform init , aby pobrać wymagane moduły platformy Azure do zarządzania zasobami platformy Azure:

terraform init

Uruchom polecenie , terraform plan aby określić, jakie akcje są niezbędne do utworzenia konfiguracji określonej w plikach konfiguracji. Uruchomienie polecenia powoduje utworzenie planu wykonania, ale nie ma go zastosowania. Ten wzorzec umożliwia sprawdzenie, czy plan wykonania odpowiada twoim oczekiwaniom przed wprowadzeniem jakichkolwiek zmian w rzeczywistych zasobach.

terraform plan -out main.tfplan

Po zweryfikowaniu planu wykonania uruchom polecenie terraform apply , aby zastosować plan. To polecenie tworzy zdefiniowane zasoby.

terraform apply main.tfplan

Weryfikowanie konta magazynu

Aby zweryfikować konto usługi Azure Storage, możesz użyć terraform state show polecenia . To polecenie pokazuje bieżący stan określonego zasobu.

W przypadku konta magazynu utworzonego w tym module polecenie wyświetla wygenerowaną nazwę wraz z pełną listą atrybutów konta magazynu i ich wartościami.

terraform state show 'azurerm_storage_account.example'

Czyszczenie zasobów

Jeśli nie potrzebujesz już zasobów utworzonych w tym module, uruchom terraform apply polecenie z flagą -destroy :

terraform plan -destroy -out main.destroy.tfplan

Uruchom polecenie terraform apply , aby zastosować plan wykonania:

terraform apply main.destroy.tfplan