Terraform ist ein Tool welches hilft, die Infrastruktur in Azure mittels Textdateien zu beschreiben. Terraform liest diese Dateien und erstellt die Azure Ressourcen automatisch.
Note
Dieses Thema ist nicht notwendig, um Azure zu nutzen. Alles was hier beschrieben wird kann ebenso über das Portal ausgeführt werden.
Im Folgenden wird eine Kurzeinführung in Terraform gegeben. Für weiterführende Informationen wird auf das offizielle Handbuch verwiesen. Der Microsoft-Lehrgang Terraform on Azure Fudnamentals Lab ist als tiefergehende Einführung in die Thematik ebenso empfohlen.
Zustand
Terraform benötigt einen Speicher für den aktuellen Zustand (auch State genannt) der Infrastruktur. Dies wird im Kapitel State des offiziellen Handbuchs genauer beschrieben. In diesem Artikel wird der Zustand in der lokalen Datei terraform.tfstate gespeichert. Dies ist für den produktiven Einsatz aber nicht empfehlenswert. Dazu siehe das Kapitel Remote State des offiziellen Handbuchs.
Installation
Für die Anleitung zur Installation siehe diesen Link.
Beispiel
Im folgenden Beispiel wird eine einfache Resource Group über Terraform erstellt. Um die Textdateien zu erzeugen reicht einen beliebigen Texteditor. Die Terraform Dateien legt man am besten in einem neuen Verzeichnis ab. In diesem Verzeichnis erstellt man dann eine Terraform Datei (hier main.tf).
terraform {
required_version = "~> 1.12"
required_providers {
azurerm = {
source = "hashicorp/azurerm"
version = "~> 4.0"
}
}
}
provider "azurerm" {}
resource "azurerm_resource_group" "example" {
name = "rg-example"
location = "switzerlandnorth"
}
Ausführung
Note
Die obige Konfiguration bedingt es, dass man sich mit az login an Azure angemeldet hat. Dies wird hier genauer beschrieben.
In dem Verzeichnis mit der obigen Datei kann man dann Terraform ausführen. Dazu wechselt man in die Kommandozeileneingabe und navigiert zu diesem Verzeichnis. Im Verzeichnis kann man dann einen Plan anzeigen lassen, was Terraform verändern würde.
terraform plan
Der Plan zeigt dann alle erkannten Änderungen an.
Note
Falls man mehrere Subscrpitions besitzt, muss man mittels az account set -n "<NAME>" zu derjenigen wechseln, bei welcher diese Infrastruktur erstellt werden sollte.
Nachdem man den Plan verifiziert hat kann man Terraform die Änderungen durchführen lassen:
terraform apply
Der Plan wird vor der Ausführung nochmals angezeigt und man kann ein letztes mal abbrechen.
Azure Verified Modules (AVM)
Microsoft stellt eine Sammlung von geprüften Modulen für Terraform (und Bicep) zur Verfügung, welches die Erstellung von komplexeren Infrastrukturen erleichtert. Diese Sammlung wird Azure Verified Modules genannt. Diese Module sind Open Source und helfen dabei, Ressourcen gemäss den Best Practices von Microsoft zu erstellen.
Der Lehrgang Introduction to using Azure Verified for Terraform bieten einen Einstieg in die Thematik und führt Sie in mehrere Terraform Module ein, um ein komplexeren Setup mittels Terraform zu realisieren.
Vorlagen
Die Informatikdienste stellt einige Vorlagen zur Verfügung, welche mittels Terraform ausgeführt werden können.
Note
Diese werden zu einem späteren Zeitpunkt hier veröffentlicht.