Einführung in Terraform

Abgeschlossen

Mit dem Open-Source-IaC-Tool Terraform können Sie die Cloudinfrastruktur mithilfe der allgemeinen Konfigurationssprache HCL (HashiCorp Configuration Language) definieren und bereitstellen. Terraform codiert die Infrastruktur in Konfigurationsdateien, die den gewünschten Zustand für Ihre Infrastruktur beschreiben. Terraform kann jede Infrastruktur (z. B. öffentliche Clouds, private Clouds und SaaS-Dienste) mithilfe von Terraform-Anbietern verwalten.

Terraform-Anbieter für die Azure-Infrastruktur

Mehrere Terraform-Anbieter ermöglichen die Verwaltung der Azure-Infrastruktur:

  • AzureRM: Verwalten Sie Azure Resource Manager-Ressourcen wie virtuelle Computer, Speicherkonten und Netzwerkschnittstellen.
  • AzureAD: Verwalten Sie Microsoft Entra-Ressourcen wie Gruppen, Benutzer, Dienstprinzipale und Anwendungen.
  • AzureDevOps: Verwalten Sie Azure DevOps-Ressourcen wie Agents, Repositorys, Projekte, Pipelines und Abfragen.
  • AzAPI: Verwalten Sie Azure-Ressourcen direkt mithilfe der Azure Resource Manager-APIs. Dieser Anbieter ergänzt den AzureRM-Anbieter, indem er die Verwaltung der neuesten Azure-Ressourcen ermöglicht.
  • Azure Stack: Verwalten Sie Azure Stack-Ressourcen wie virtuelle Computer, DNS, virtuelle Netzwerke und Speicher.

Speicherkonto erstellen

Alle Terraform-Konfigurationen müssen einen provider-Block enthalten. Im folgenden HCL-Code wird der Azure Resource Manager-Anbieter (azurerm) angegeben. Eine Azure-Ressourcengruppe mit dem Namen storageaccountexamplerg ist in der Region eastus (USA, Osten) definiert. Ein Azure-Speicherkonto wird in der Ressourcengruppe erstellt. Der Speicherkontoname besteht aus den ersten 24 Zeichen einer Zahl, die über die md5-Funktion generiert wird.

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

Ausführen des Terraform-Codes

Führen Sie terraform init aus, um die erforderlichen Azure-Module zum Verwalten Ihrer Azure-Ressourcen herunterzuladen:

terraform init

Führen Sie terraform plan aus, um die Aktionen zu ermitteln, die zum Erstellen der von Ihnen in Ihren Konfigurationsdateien angegebenen Konfiguration erforderlich sind. Durch die Ausführung des Befehls wird ein Ausführungsplan erstellt, aber nicht angewendet. Anhand dieses Musters können Sie überprüfen, ob der Ausführungsplan Ihren Erwartungen entspricht, bevor Sie Änderungen an den tatsächlichen Ressourcen vornehmen.

terraform plan -out main.tfplan

Führen Sie nach dem Überprüfen des Ausführungsplans den Befehl terraform apply aus, um den Plan anzuwenden. Mit diesem Befehl werden die definierten Ressourcen erstellt.

terraform apply main.tfplan

Überprüfen des Speicherkontos

Um das Azure-Speicherkonto zu überprüfen, können Sie den terraform state show-Befehl verwenden. Dieser Befehl zeigt den aktuellen Zustand der angegebenen Ressource an.

Im Falle des in diesem Modul erstellten Speicherkontos zeigt der Befehl den generierten Namen zusammen mit einer vollständigen Liste der Speicherkontoattribute und deren Werte an.

terraform state show 'azurerm_storage_account.example'

Bereinigen von Ressourcen

Wenn Sie die in diesem Modul erstellten Ressourcen nicht mehr benötigen, führen Sie den Befehl terraform apply mit dem Flag -destroy aus:

terraform plan -destroy -out main.destroy.tfplan

Führen Sie terraform apply aus, um den Ausführungsplan anzuwenden:

terraform apply main.destroy.tfplan