Introduktion till Terraform

Slutförd

Med IaC-verktyget terraform med öppen källkod kan du definiera och etablera molninfrastruktur med hjälp av ett konfigurationsspråk på hög nivå som kallas HashiCorp Configuration Language (HCL). Terraform kodifierar infrastrukturen i konfigurationsfiler som beskriver det önskade tillståndet för infrastrukturen. Terraform kan hantera alla infrastrukturer – till exempel offentliga moln, privata moln och SaaS-tjänster – med hjälp av Terraform-leverantörer.

Terraform-leverantörer för Azure-infrastruktur

Flera Terraform-leverantörer möjliggör hantering av Azure-infrastruktur:

  • AzureRM: Hantera Azure Resource Manager-resurser som virtuella datorer, lagringskonton och nätverksgränssnitt.
  • AzureAD: Hantera Microsoft Entra-resurser som grupper, användare, tjänstens huvudnamn och program.
  • AzureDevOps: Hantera Azure DevOps-resurser som agenter, lagringsplatser, projekt, pipelines och frågor.
  • AzAPI: Hantera Azure-resurser med hjälp av Azure Resource Manager-API:erna direkt. Den här providern kompletterar AzureRM-providern genom att aktivera hanteringen av de senaste Azure-resurserna.
  • Azure Stack: Hantera Azure Stack-resurser som virtuella datorer, DNS, virtuella nätverk och lagring.

Skapa ett lagringskonto

Alla Terraform-konfigurationer måste innehålla ett provider block. Följande HCL-kod anger Azure Resource Manager-providern (azurerm). En Azure-resursgrupp med namnet storageaccountexamplerg definieras på platsen eastus . Ett Azure Storage-konto skapas i resursgruppen. Lagringskontonamnet är de första 24 tecknen i ett tal som genereras via md5 funktionen.

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

Kör Terraform-koden

Kör terraform init för att ladda ned nödvändiga Azure-moduler för att hantera dina Azure-resurser:

terraform init

Kör terraform plan för att avgöra vilka åtgärder som krävs för att skapa den konfiguration som du angav i konfigurationsfilerna. När kommandot körs skapas en körningsplan men den tillämpas inte. 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.

terraform plan -out main.tfplan

När du har verifierat körningsplanen kör du terraform apply för att tillämpa planen. Det här kommandot skapar de definierade resurserna.

terraform apply main.tfplan

Verifiera lagringskontot

Om du vill verifiera Azure Storage-kontot kan du använda terraform state show kommandot . Det här kommandot visar aktuellt tillstånd för den angivna resursen.

När det gäller lagringskontot som du skapade i den här modulen visar kommandot det genererade namnet, tillsammans med en fullständig lista över lagringskontoattribut och deras värden.

terraform state show 'azurerm_storage_account.example'

Rensa resurser

När du inte längre behöver de resurser som du skapade i den här modulen -destroy kör terraform apply du med flaggan:

terraform plan -destroy -out main.destroy.tfplan

Kör terraform apply för att tillämpa körningsplanen:

terraform apply main.destroy.tfplan