Haben Sie zuvor über das Azure-Portal eine Azure-VM erstellt? Wenn ja, wie viele Klicks hat es gedauert, um das zu tun? Können Sie es immer wieder tun und dabei die genau gleichen Eingabewerte bereitstellen, um sicherzustellen, dass Sie einen bestimmten Standard erfüllen? Wahrscheinlich nicht. Sie müssen den Prozess automatisieren. Erstellen Sie Azure-VMs mit Terraform!
Terraform von Hashicorp ist ein Dienstprogramm, das einfache bis komplexe Infrastrukturen lokal oder in der Cloud erstellt. Terraform ist eine einzelne ausführbare Datei, die Konfigurationsdateien liest, einen Status erstellt und dann sicherstellt, dass Ihre Infrastruktur in diesem Zustand erstellt wird und bleibt.
In diesem Artikel erfahren Sie, wie Sie mit Terraform beginnen, indem Sie eine Azure-VM erstellen. Dieses Tutorial ist ein großartiges Beispiel für Terraform Azure.
Voraussetzungen
Wenn Sie diesem Tutorial folgen möchten, stellen Sie sicher, dass Sie Folgendes haben:
- Azure CLI, das bereits für ein Azure-Abonnement authentifiziert ist
In den Schritten wird in diesem Tutorial macOS mit PowerShell Core verwendet, obwohl derselbe Prozess auch unter Windows 10 mit PowerShell Core, Windows PowerShell oder sogar der Windows-Befehlszeile befolgt werden kann.
Installation von Terraform
Um loszulegen, müssen Sie zuerst Terraform herunterladen. Es gibt viele Möglichkeiten, dies je nach Ihren Vorlieben zu tun. In diesem Tutorial verwenden wir macOS, also können Sie HomeBrew verwenden, indem Sie brew install terraform
ausführen. Sie können auch direkt zur Terraform-Downloadseite gehen oder, wenn Sie Windows verwenden, können Sie auch Chocolatey verwenden.
Wussten Sie, dass Azure Cloud Shell Terraform vorinstalliert hat?
Sobald Sie Terraform heruntergeladen haben, kopieren Sie es in einen Ordner in Ihrem Pfad und führen Sie terraform
aus. Sie sollten einige Verwendungsanweisungen wie unten gezeigt sehen. Wenn Sie dies sehen, sind Sie bereit fortzufahren.

Authentifizierung bei Azure
Terraform verwendet Anbieter, um mit verschiedenen On-Premises- und Cloud-Anbietern zu kommunizieren. In diesem Fall müssen Sie den Terraform Azure-Anbieter konfigurieren. Vorausgesetzt, dass Sie die Azure CLI installiert und sich bereits bei Azure authentifiziert haben, müssen Sie zuerst einen Serviceprinzipal erstellen. Terraform wird den Serviceprinzipal verwenden, um sich zu authentifizieren und Zugriff auf Ihr Azure-Abonnement zu erhalten.
Erstellen Sie einen Serviceprinzipal
Erstellen Sie in Ihrer Konsole einen Serviceprinzipal mit der Azure CLI. Um dies zu tun:
Zuerst finden Sie Ihre Abonnement-ID mithilfe des unten stehenden Befehls az account list
.
Sobald Sie die Abonnement-ID haben, erstellen Sie einen Dienstprinzipal mit der Rolle „Mitwirkender“ für Ihr Abonnement.
Mit der folgenden Azure CLI-Anweisung wird Azure aufgerufen und eine Azure AD-Anwendung mit einem Kennwort erstellt. Da Sie den unten angezeigten Ausgabewert der Variable $sp
zuweisen, werden die Werte für appId
und password
in der Variable gespeichert, um sie später verwenden zu können.

Setzen Sie Umgebungsvariablen
Terraform benötigt vier verschiedene Konfigurationselemente, um eine erfolgreiche Verbindung zu Azure herzustellen.
- Die Azure-Abonnement-ID
- Die Anwendungs-ID des Dienstprinzipals
- Das Kennwort des Dienstprinzipals
- Der Azure AD-Mandant
Eine Möglichkeit, diese Informationen an Terraform weiterzugeben, ist die Verwendung von Umgebungsvariablen. Da dieses Tutorial in einer PowerShell-Konsole ausgeführt wird, können Sie diese Umgebungsvariablen mit $env:
setzen. Unten sehen Sie die Umgebungsvariablen, nach denen Terraform sucht, wenn es versucht, eine Verbindung zu Azure herzustellen.
Da der Ausgabewert von az ad sp create-for-rbac
zuvor in der Variable $sp
gespeichert wurde, können Sie einfach auf die Eigenschaften verweisen, anstatt sie zu kopieren und einzufügen.
Sobald Sie die Umgebungsvariablen definiert haben, ist Terraform bereit, eine Verbindung zu Azure herzustellen!
Erstellen Sie eine Konfigurationsdatei.
Alle Terraform-Konfigurationen werden normalerweise in einem einzigen Ordner mit dem Namen Modul erstellt. In diesem Tutorial erstellen Sie kein Modul, aber Sie folgen derselben Praxis.
Erstellen Sie in Ihrer PowerShell-Konsole einen Ordner namens TerraformTesting an einem beliebigen Ort und wechseln Sie dann in dieses Verzeichnis.
Erstellen Sie anschließend die Konfigurationsdatei main.tf. Hier wird die Konfiguration zum Erstellen der Azure-VM mit Terraform gespeichert. Diese Konfigurationsdatei wird von den meisten als „Haupt“-Konfigurationsdatei bezeichnet. Sie enthält Anbieter- und Ressourcendeklarationen für alle von der Konfiguration verwaltete Infrastruktur.
Wenn Sie mehr über die Syntax (HCL) erfahren möchten, haben Michael Levan und ich ein großartiges Kapitel über Terraform in unserem No BS Azure and DevOps eBook.
Erstellen Sie eine neue Datei main.tf im Verzeichnis Terraformtesting, die wie unten aussieht.
Terraform initialisieren
Terraform muss im Voraus wissen, welche Anbieter Sie verwenden werden, wenn es versucht, Ressourcen zu erstellen. Es muss dies im Voraus wissen, weil es diese Anbieter im selben Ordner herunterlädt, in dem Sie arbeiten.
Laden Sie den Ressourcenanbieter azurerm
, wie in der Hauptkonfigurationsdatei definiert, indem Sie terraform init
ausführen. Sobald Sie dies tun, sollten Sie dann eine ähnliche Ausgabe wie unten sehen.

Validieren Sie die Konfiguration
Die von Ihnen erstellte Konfiguration ist möglicherweise nicht perfekt. Schwer zu glauben, oder? Terraform muss die Konfiguration auf Syntaxfehler überprüfen. Führen Sie dazu den Befehl terraform plan
aus. Dieser Befehl liest die Konfigurationsdateien im Verzeichnis und meldet etwaige Fehler.
Stellen Sie sicher, dass Sie etwaige von
terraform plan
aufgezeigte Fehler beheben, bevor Sie versuchen, die Infrastruktur tatsächlich bereitzustellen!
Erstellen Sie die Azure-VM mit Terraform
Jetzt ist es an der Zeit, die Azure-VM tatsächlich zu erstellen, indem Sie terraform apply
ausführen. Wenn Sie terraform apply
ausführen, liest Terraform alle Konfigurationsdateien, die Sie im Verzeichnis haben, und fordert Sie zur Bestätigung auf. Sobald Sie „Ja“ eingegeben haben, stellt es eine Verbindung zu Azure her und beginnt mit dem Aufbau der VM und aller zugehörigen Ressourcen.

Wenn Sie am Ende den leuchtend grünen Text Anwendung abgeschlossen!
sehen, hat Terraform die Ressourcen erfolgreich erstellt!
Aufräumen
Da dies nur eine Demonstration war und Sie diese VM wahrscheinlich nicht behalten möchten, tun Sie sich selbst einen Gefallen und entfernen Sie alles, was Sie getan haben.
Sie haben ein Dienstprinzipal für die Authentifizierung von Terraform in Azure erstellt. Sie können dies mit dem folgenden Befehl az ad sp delete
entfernen.
Entfernen Sie anschließend die Azure-VM, die Sie gerade erstellt haben, und alle anderen Ressourcen in der Konfigurationsdatei mit terraform destroy
. Wenn Sie die Konfiguration überprüfen und testen möchten, was würde passieren, wenn Sie terraform destroy
ausführen, können Sie auch terraform plan -destroy
ausführen.
Fazit
Terraform ist ein großartiges und kostenloses Tool, um Infrastruktur in vielen verschiedenen Bereichen aufzubauen. Das Erlernen der HCL-Syntax ist der schwierigste Teil von Terraform, aber ehrlich gesagt ist HCL eine intuitive Sprache. Wenn Sie darüber nachdenken, ein Tool wie Terraform oder ARM-Templates zu verwenden, lernen Sie Terraform!
Terraform ist jetzt ein beliebtes Branchentool mit großartiger Community-Unterstützung und vielen Menschen, die helfen können!