Einführung in Terraform
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