Inleiding tot Terraform

Voltooid

Met het opensource IaC-hulpprogramma terraform kunt u cloudinfrastructuur definiëren en inrichten met behulp van een configuratietaal op hoog niveau, ook wel HashiCorp Configuration Language (HCL) genoemd. Terraform codificeert de infrastructuur in configuratiebestanden die de gewenste status voor uw infrastructuur beschrijven. Terraform kan elke infrastructuur beheren, zoals openbare clouds, privéclouds en SaaS-services, met behulp van Terraform-providers.

Terraform-providers voor Azure-infrastructuur

Verschillende Terraform-providers maken het beheer van de Azure-infrastructuur mogelijk:

  • AzureRM: Beheer Azure Resource Manager-resources, zoals virtuele machines, opslagaccounts en netwerkinterfaces.
  • AzureAD: Beheer Microsoft Entra-resources, zoals groepen, gebruikers, service-principals en toepassingen.
  • AzureDevOps: Azure DevOps-resources beheren, zoals agents, opslagplaatsen, projecten, pijplijnen en query's.
  • AzAPI: Azure-resources beheren met behulp van de Azure Resource Manager-API's rechtstreeks. Deze provider vormt een aanvulling op de AzureRM-provider door het beheer van de nieuwste Azure-resources mogelijk te maken.
  • Azure Stack: Azure Stack-resources beheren, zoals virtuele machines, DNS, virtuele netwerken en opslag.

Een opslagaccount maken

Alle Terraform-configuraties moeten een provider blok bevatten. Met de volgende HCL-code wordt de Azure Resource Manager-provider (azurerm) opgegeven. Er wordt een Azure-resourcegroep met de naam storageaccountexamplerg gedefinieerd op de eastus locatie. Er wordt een Azure-opslagaccount gemaakt in de resourcegroep. De naam van het opslagaccount is de eerste 24 tekens van een getal dat via de md5 functie wordt gegenereerd.

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

De Terraform-code uitvoeren

Voer deze opdracht uit terraform init om de vereiste Azure-modules te downloaden voor het beheren van uw Azure-resources:

terraform init

Voer terraform plan deze opdracht uit om te bepalen welke acties nodig zijn om de configuratie te maken die u hebt opgegeven in uw configuratiebestanden. Als u de opdracht uitvoert, maakt u een uitvoeringsplan, maar past u dit niet toe. Met dit patroon kunt u controleren of het uitvoeringsplan aan uw verwachtingen voldoet voordat u wijzigingen aanbrengt in de werkelijke resources.

terraform plan -out main.tfplan

Nadat u het uitvoeringsplan hebt gecontroleerd, voert terraform apply u uit om het plan toe te passen. Met deze opdracht worden de gedefinieerde resources gemaakt.

terraform apply main.tfplan

Het opslagaccount controleren

Als u het Azure-opslagaccount wilt controleren, kunt u de terraform state show opdracht gebruiken. Met deze opdracht wordt de huidige status van de opgegeven resource weergegeven.

In het geval van het opslagaccount dat u in deze module hebt gemaakt, toont de opdracht de gegenereerde naam, samen met een volledige lijst met opslagaccountkenmerken en de bijbehorende waarden.

terraform state show 'azurerm_storage_account.example'

Resources opschonen

Wanneer u de resources die u in deze module hebt gemaakt niet meer nodig hebt, voert u deze uit terraform apply met de -destroy vlag:

terraform plan -destroy -out main.destroy.tfplan

Uitvoeren terraform apply om het uitvoeringsplan toe te passen:

terraform apply main.destroy.tfplan