Mit den ARM-Templates unterstützt der Azure Resource Manager als zentrale Deployment Engine eigens ein deklaratives Bereitstellung-Paradigma. Doch es kann es sich lohnen, zu diesen Zweck auf Terraform zu setzen.
Terraform-Erweiterungen in VS Code.
(Bild: Drilling / Microsoft)
Unabhängig technologischer Unterschiede, bzw. Vor- oder Nachteile zwischen ARM und Terraform kann es durchaus sein, das Unternehmen bereits über umfangreiche Terraform-Expertise verfügen. Warum also nicht einfach darauf aufbauen, statt sich auf ein neues Modell einzulassen.
Terraform-Erweiterungen in VS Code.
(Bild: Drilling / Microsoft)
Nachdem wir Ihnen in den zurückliegenden Beiträgen gezeigt haben, wie und mit welchen Werkzeugen Sie Bereitstellungen in Azure mit ARM und Bicep durchführen können, werfen wir mit diesem Beitrag einen Blick auf Terraform, insbesondere die Integration von Terraform mit der Azure Platform.
Dazu zeigen wir Ihnen exemplarisch wie Sie eine Azure Resource, wie z. B. ein virtuelles Netzwerk mit Hilfe von Terraform in Azure bereitstellen können. Für das weitere Verständnis ist es ausnahmsweise sinnvoll, das Pferd von hinten aufzuzäumen und einen Blick auf das fertige Terraform-Deployment-Skript für dieses Beispiel zu werfen.
Wenn Sie offline mit Terraform entwickeln, verwenden Sie auf jeden Fall VS Code.
(Bild: Drilling / Microsoft)
Dazu ist es vorab sinnvoll, in Visual Studio Code die Erweiterung „Azure Terraform“ zu installieren: Visual Studio Code weist Sie sogar automatisch darauf hin, dass der Marketplace passende Erweiterungen für *.tf-Dateien enthält, sobald Sie eine Datei mit der Endung .tf speichern.
Installieren Sie jetzt die beiden Erweiterungen „Terraform“ und „Azure Terraform“. Solbad die Erweiterungen installiert ist, verfügen Sie unter anderem über eine Autovervollständigung für Terraform-Syntax und fertige tf-Dateien werden Ihnen mit Syntax-Highlighting angezeigt.
Unschwer zu erkennen ist in Zeile 1, dass man einen Terraform Resource Provider für Azure benötigt. Dieser heißt „azurerm“. Auf der Terraform-Registry-Seite ist zu erkennen, dass Terraform zahlreiche Provider für die unterschiedlichsten Partner-Lösungen zur Verfügung stellt. Die weiteren Einträge im oben gezeigten Terraform-Bereitstellungsskript sind weitgehend selbsterklärend und wie bei ARM formal in JSON verpackt.
Das Skript stellt ein virtuelles Netzwerk namens „td-vnet-tf" mit dem Adressbereich 10.0.0.0/16 in einer Ressourcengruppe „tf-rg“ mit zwei Subnetzen „Frontend“ (10.0.0.0/24) und „Backend“ (10.0.1.0/24) sowie eine Netzwerksicherheitsgruppe „td-tf-SecurityGroup1“ bereit, die mit dem Subnetz „Frontend“ assoziiert wird. Die zugehörigen Ressource-Typen heißen in Terraform-Syntax „azurerm“ (Terraform Provider), „azurerm_resource_group“ (Azure Resource Group), „azurerm_virtual_network“ (Azure Virtual Network) und „azurerm_network_security_group“ (Azure Security Group).
Das eigentliche Bereitstellen dieser Terraform-Datei kann auf vielerlei Arten erfolgen. Theoretisch können Sie Ihre Terraform-Entwicklungsumgebung z. B. auf einer Azure-VM betreiben. Das ist aber meist gar nicht notwendig, weil z. B. die Azure Cloud Shell bereits mit einer Terraform-Integration ausgestattet ist. Starten Sie also einfach eine BASH-Sitzung in der Azure Cloud Shell und überprüfen z. B. erst einmal die installierte Terraform-Version mit …
terraform version
Die aktuelle Terraform-Version.
(Bild: Drilling / Microsoft)
Dabei werden Sie vermutlich feststellen, dass es eigentlich bereits eine neue Terraform-Version gibt, die Sie allerdings in der Azure Cloud Shell nicht installieren können, wohl aber in einer lokal ausgeführten Azure CLI.
Das Terraform-Bereitstellungsskript in der Cloud Shell, hier mit „nano“.
(Bild: Drilling / Microsoft)
Nun erstellen Sie einen Ordner für Ihr Projekt, wechseln in Diesen, erstellen darin z. B. mit Hilfe des eingebauten VS Code-Editors („code“ eingeben) oder mit „nano“ oder „vi“ eine neue Datei vnet.tf mit dem oben gezeigten Inhalt und speichern sie in diesem Ordner ab.
Arbeiten mit Terraform
Der zentrale Terraform-Workflow besteht aus drei Hauptschritten, sobald die Terraform-Konfiguration vorliegt:
1. „Initialize“(„terraform init“) bereitet das Arbeitsverzeichnis vor, damit Terraform die Konfiguration ausführen kann.
2. „Plan“ („terraform plan“) zeigt Änderungen in der Vorschau an, bevor Sie sie anwenden.
3. „Apply“ („terraform apply) führt die von Ihrer Terraform-Konfiguration definierten Änderungen aus, um Ressourcen zu erstellen, zu aktualisieren oder zu löschen.
Die Terraform-Initialisierung.
(Bild: Drilling / Microsoft)
Sie müssen also zuerst mit …
terraform init
eine Terraform-Initialisierung durchführen. Dabei werden unter anderem die Terraform-Resource-Provider ermittelt.
Eigentlich könnten Sie Ihre Datei „vnet.tf“ direkt bereitstellen. Besser (für die spätere Anwendung in größeren Umgebungen) Sie lassen sich die durch die Bereitstellung erwartbaren Änderungen wie folgt als Vorschau anzeigen.
terraform plan -out vnet.tfplan
Das Ergebnis sollte so aussehen, wie in der nachfolgenden Bildergalerie, die dann noch die eigentliche Bereitstellung zeigt.
Stand: 08.12.2025
Es ist für uns eine Selbstverständlichkeit, dass wir verantwortungsvoll mit Ihren personenbezogenen Daten umgehen. Sofern wir personenbezogene Daten von Ihnen erheben, verarbeiten wir diese unter Beachtung der geltenden Datenschutzvorschriften. Detaillierte Informationen finden Sie in unserer Datenschutzerklärung.
Einwilligung in die Verwendung von Daten zu Werbezwecken
Ich bin damit einverstanden, dass die Vogel IT-Medien GmbH, Max-Josef-Metzger-Straße 21, 86157 Augsburg, einschließlich aller mit ihr im Sinne der §§ 15 ff. AktG verbundenen Unternehmen (im weiteren: Vogel Communications Group) meine E-Mail-Adresse für die Zusendung von Newslettern und Werbung nutzt. Auflistungen der jeweils zugehörigen Unternehmen können hier abgerufen werden.
Der Newsletterinhalt erstreckt sich dabei auf Produkte und Dienstleistungen aller zuvor genannten Unternehmen, darunter beispielsweise Fachzeitschriften und Fachbücher, Veranstaltungen und Messen sowie veranstaltungsbezogene Produkte und Dienstleistungen, Print- und Digital-Mediaangebote und Services wie weitere (redaktionelle) Newsletter, Gewinnspiele, Lead-Kampagnen, Marktforschung im Online- und Offline-Bereich, fachspezifische Webportale und E-Learning-Angebote. Wenn auch meine persönliche Telefonnummer erhoben wurde, darf diese für die Unterbreitung von Angeboten der vorgenannten Produkte und Dienstleistungen der vorgenannten Unternehmen und Marktforschung genutzt werden.
Meine Einwilligung umfasst zudem die Verarbeitung meiner E-Mail-Adresse und Telefonnummer für den Datenabgleich zu Marketingzwecken mit ausgewählten Werbepartnern wie z.B. LinkedIN, Google und Meta. Hierfür darf die Vogel Communications Group die genannten Daten gehasht an Werbepartner übermitteln, die diese Daten dann nutzen, um feststellen zu können, ob ich ebenfalls Mitglied auf den besagten Werbepartnerportalen bin. Die Vogel Communications Group nutzt diese Funktion zu Zwecken des Retargeting (Upselling, Crossselling und Kundenbindung), der Generierung von sog. Lookalike Audiences zur Neukundengewinnung und als Ausschlussgrundlage für laufende Werbekampagnen. Weitere Informationen kann ich dem Abschnitt „Datenabgleich zu Marketingzwecken“ in der Datenschutzerklärung entnehmen.
Falls ich im Internet auf Portalen der Vogel Communications Group einschließlich deren mit ihr im Sinne der §§ 15 ff. AktG verbundenen Unternehmen geschützte Inhalte abrufe, muss ich mich mit weiteren Daten für den Zugang zu diesen Inhalten registrieren. Im Gegenzug für diesen gebührenlosen Zugang zu redaktionellen Inhalten dürfen meine Daten im Sinne dieser Einwilligung für die hier genannten Zwecke verwendet werden. Dies gilt nicht für den Datenabgleich zu Marketingzwecken.
Recht auf Widerruf
Mir ist bewusst, dass ich diese Einwilligung jederzeit für die Zukunft widerrufen kann. Durch meinen Widerruf wird die Rechtmäßigkeit der aufgrund meiner Einwilligung bis zum Widerruf erfolgten Verarbeitung nicht berührt. Um meinen Widerruf zu erklären, kann ich als eine Möglichkeit das unter https://contact.vogel.de abrufbare Kontaktformular nutzen. Sofern ich einzelne von mir abonnierte Newsletter nicht mehr erhalten möchte, kann ich darüber hinaus auch den am Ende eines Newsletters eingebundenen Abmeldelink anklicken. Weitere Informationen zu meinem Widerrufsrecht und dessen Ausübung sowie zu den Folgen meines Widerrufs finde ich in der Datenschutzerklärung.