Im Infrastruktur-als-Code (IaC)-Bereich ist eines der nützlichsten Tools, das in den letzten Jahren auf den Markt gekommen ist, HashiCorp’s Terraform Windows. Die Fähigkeit, die Infrastruktur zu versionieren, die Bereitstellung von Ressourcen zu automatisieren und über verschiedene Cloud-Anbieter hinweg auszuführen, ist enorm wichtig für jede DevOps- und Automatisierungs-Workflow.
Ein Anwendungsfall für Terraform ist in CI/CD. Mit Terraform können Sie Folgendes tun:
Meine neuesten Videos
- eine Testumgebung erstellen
- eine Anwendung bereitstellen
- Integrationstests ausführen
- die Testumgebung zerstören
All diese Schritte werden automatisch durchgeführt. Und es wird kein Rechenzentrum benötigt!
Voraussetzungen
Dieser Artikel ist eine Anleitung, wie man Terraform für Windows einrichtet. Wenn Sie mitmachen möchten, stellen Sie bitte sicher, dass Sie die folgenden Voraussetzungen erfüllen.
- A Windows 10 device
- Ein AWS-Konto
- Die AWS CLI auf diesem Gerät installiert und konfiguriert. Sie können hier erfahren, wie Sie es installieren und hier, wie Sie es konfigurieren.
- (Optional) Visual Studio Code mit der Terraform-Erweiterung
Installation der Terraform Windows-Anwendung
Um die Vorteile von Terraform nutzen zu können, müssen Sie es zuerst auf Ihrem Betriebssystem installieren. In diesem Artikel konzentriere ich mich auf Windows. Beachten Sie jedoch, dass Terraform auch auf anderen Betriebssystemen ausgeführt werden kann. Wenn Sie nicht auf Windows sind, werfen Sie einen Blick in die Installationsdokumentation.
Auf die harte Tour
Wenn Sie keinen Paketmanager verwenden können oder den Installationsprozess verstehen möchten, können Sie Terraform manuell installieren. Sie können Terraform installieren, indem Sie die Binärdatei herunterladen und sie zum Systempfad hinzufügen. Wenn dies einschüchternd aussieht, versichere ich Ihnen, dass es einen einfacheren Weg gibt, den Sie im nächsten Abschnitt lernen werden.
- Laden Sie die entsprechende Version von Terraform von der Download-Seite von HashiCorp herunter. In meinem Fall handelt es sich um die 64-Bit-Version für Windows.
- Erstellen Sie einen Ordner auf Ihrem C:\ Laufwerk, in dem Sie die Terraform-Ausführungsdatei platzieren können. Ich ziehe es vor, Installationsprogramme in einem Unterordner (z. B. C:\tools) abzulegen, in dem Sie Binärdateien ablegen können.
- Nach Abschluss des Downloads suchen Sie ihn im Datei-Explorer. Entpacken Sie die Zip-Datei in den Ordner, den Sie in Schritt 2 erstellt haben.
- Öffnen Sie das Startmenü und geben Sie „Umgebung“ ein. Das erste Ergebnis sollte die Option Systemumgebungsvariablen bearbeiten sein. Klicken Sie darauf und es sollte sich ein Fenster öffnen.

5. Klicken Sie unten auf Umgebungsvariablen… und Sie werden Folgendes sehen:

6. Unter dem Abschnitt unten, wo es heißt Systemvariablen, suchen Sie nach einer namens Path und klicken Sie auf Bearbeiten. Sie sehen dann eine Liste, in der Sie die Binärdateien finden können, die Windows möglicherweise aus irgendeinem Grund benötigt.
7. Klicken Sie auf Neu und fügen Sie den Ordnerpfad, in dem sich die Datei terraform.exe befindet, am Ende der Liste hinzu. Es sollte so aussehen, wenn Sie fertig sind.

8. Klicken Sie auf OK für jede der geöffneten Menüs, bis keine mehr übrig sind.
9. Um sicherzustellen, dass Windows den neuen Pfad erkennt, öffnen Sie ein neues CMD/PowerShell-Fenster und geben Sie refreshenv
ein.
10. Überprüfen Sie die erfolgreiche Installation, indem Sie terraform --version
eingeben. Wenn eine Version angezeigt wird, funktioniert alles.
Der einfache Weg
Puh, das war eine Menge Arbeit! Es wäre schrecklich, das jedes Mal zu tun, wenn Sie neue Software auf Ihrem Gerät installieren müssen. Verwenden wir stattdessen einen Paketmanager. Es gibt mehrere Paketmanager, die Sie verwenden können, um Terraform unter Windows zu installieren. Mein Favorit für Windows ist Chocolatey. Es macht die Installation, Entfernung und Aktualisierung von Software so einfach wie einen Befehl in einer Zeile, und Terraform ist da keine Ausnahme.
Um Terraform mit Chocolatey zu installieren, führen Sie die folgenden Schritte aus:
- Öffnen Sie eine CMD/PowerShell-Eingabeaufforderung als Administrator und installieren Sie Chocolatey mit dem Befehl von ihrer Installationsseite.
- Sobald das abgeschlossen ist, führen Sie „choco install terraform“ aus. Wenn Sie möchten, können Sie auch „-y“ am Ende hinzufügen, um der Installation auf Ihrem Gerät automatisch zuzustimmen.
Nachdem dieser Befehl ausgeführt wurde, erhalten Sie etwas Ähnliches wie dies:
3. Überprüfen Sie die erfolgreiche Installation, indem Sie „terraform –version“ eingeben.
Der Linux-Weg
I can almost hear what you’re thinking. Wait a minute Chris, didn’t you say this was going to cover installing Terraform on Windows?
Ja, und das ist immer noch so. Aber eine der Funktionen unter Windows 10 ist das Windows for Linux Subsystem oder WSL. Dadurch können Sie Linux-Befehle unter Windows ausführen.
- Installieren Sie WSL. Hier werde ich nicht im Detail darauf eingehen, wie Sie WSL installieren und einrichten können. Wenn Sie jedoch mitmachen möchten und es noch nicht eingerichtet haben, finden Sie unten einen TechSnips-Schnipsel zu diesem Thema.
2. Führen Sie in Ihrer WSL-Shell „apt-get install unzip“ aus. Sie benötigen dies, um die Terraform-Binärdateien später zu extrahieren.
3. Laden Sie Terraform herunter, indem Sie „wget https://releases.hashicorp.com/terraform/0.12.6/terraform_0.12.6_linux_amd64.zip“ ausführen. Ersetzen Sie dabei die Version und Architektur durch diejenige, die am besten zu Ihrem Gerät passt. Sie finden die vollständige Liste der Terraform-Versionen hier.
4. Führen Sie unzip terraform_0.12.6_linux_amd64.zip terraform
aus, um den Inhalt der Zip-Datei in einen Ordner namens terraform zu entpacken.
5. Sobald die ZIP-Datei entpackt ist, müssen Sie sie an einen für das System zugänglichen Pfad verschieben. Zum Glück hat Linux standardmäßig einen Ordner, in dem Benutzer Binärdateien hinzufügen können. Verschieben Sie die Terraform-Binärdatei dorthin, indem Sie mv terraform /usr/local/bin/
ausführen. Der /usr/local/bin-Ordner ist bereits in Ihrem Systempfad festgelegt.
6. Überprüfen Sie die erfolgreiche Installation, indem Sie terraform --version
ausführen.
Automatisieren einer AWS Terraform EC2-Instanz
Jetzt, da Sie Terraform installiert haben, können Sie es verwenden. In diesem Beitrag werde ich den Aufbau einer einfachen AWS Terraform EC2-Instanz demonstrieren. Beachten Sie jedoch, dass Terraform Hunderte verschiedener Arten von Infrastrukturen bereitstellen kann.
Um loszulegen, benötigen Sie zunächst ein Verzeichnis, um die Terraform EC2-Skripte auszuführen. Es ist wichtig, für jede Umgebung ein separates Verzeichnis zu haben. Zum Zeitpunkt des Verfassens dieses Beitrags gibt es bei Terraform keine Möglichkeit, festzulegen, was ausgeführt wird. Es werden alle Skripte im aktuellen Arbeitsverzeichnis ausgeführt.
Einrichten eines TF-Skripts
- In Ihrer Eingabeaufforderung oder PowerShell-Konsole, die als Administrator ausgeführt wird, führen Sie
mkdir hello-terraform
und danncd ./hello-terraform
aus. - Sobald Sie ein Verzeichnis haben, benötigen Sie ein Terraform-Skript. Unten ist ein Beispiel, das Sie verwenden können. Dies ist ein typisches Terraform-Skript, das den AWS Provider verwendet, um eine AWS Instanz Ressource zu erstellen.
Wenn Sie das gesamte Skript möchten, kopieren Sie es unten. Wenn Sie verstehen möchten, was dieses Skript tut, lesen Sie weiter unten.
# Terraform HCL
3. Speichern Sie das obige Skript als main.tf
in Ihrem Arbeitsverzeichnis.
Verständnis von TF-Skripten
Bevor Sie weitermachen, schauen Sie sich den untenstehenden Block an und was er deklariert.
#Terraform HCL
Dieser Block gibt Terraform EC2 an, welchen Provider zu verwenden. Es gibt Provider für alle großen Cloud-Anbieter sowie einige On-Prem-Anbieter. Wenn Sie fortgeschrittener sind und wissen, wie man Golang schreibt, können Sie auch Ihren eigenen Provider schreiben.
Dieser Block weist Terraform an, den AWS-Provider und Zugriffsschlüssel in der ~/.aws/credentials
Datei unter dem Profilnamen default
zu verwenden. Diese Datei wird erstellt, wenn Sie die AWS CLI mit dem aws config
Befehl einrichten, wie in den Voraussetzungen angegeben.
Es ist auch erwähnenswert, dass ~/
eine Kurzform für das aktuelle Benutzerverzeichnis ist. Wenn Sie aus dem Windows-Umfeld kommen, entspricht dies $env:USERPROFILE
oder %USERPROFILE%
. Aber Terraform unterstützt diese Notation zum Zeitpunkt des Schreibens nicht.
Der folgende Block beschreibt eine Terraform EC2-Instanz und wie sie erstellt werden soll. Wenn Sie sich die Terraform-Dokumentation für aws_instance ansehen, können Sie sehen, dass einige Parameter erforderlich sind und einige optional. In diesem Fall sind die erforderlichen Parameter die AMI-ID (ami-07d0cf3af28718ef8
) für Ubuntu 18.04 LTS und t2.micro
für den Instanztyp.
Durch das Hinzufügen eines Tag-Blocks mit dem Schlüssel Name
und dem Wert HelloTerraform
wird dieser Tag auch der erstellten Instanz zugewiesen. Dies ist optional.
#Terraform HCL
Jetzt, da das Skript eingerichtet ist, rufen Sie es auf, indem Sie terraform init
in Ihrem Arbeitsverzeichnis ausführen. Dadurch werden alle Abhängigkeiten und Provider in einen Ordner namens .terraform
heruntergeladen. Wenn alles gut geht, erhalten Sie etwas Ähnliches wie dies:
Bevor Sie Änderungen vornehmen, können Sie mit Terraform EC2 sehen, was erstellt wird, indem Sie terraform plan
ausführen. Hier ist, was ausgegeben wird:
# aws_instance.ubuntu wird erstellt werden
Erstellen der AWS EC2-Instanz: Erstellen
Nun sind Sie bereit, es selbst auszuführen, indem Sie terraform apply
ausführen. Unten sehen Sie eine Ausgabe ähnlich wie bei terraform plan
, jedoch mit einer zusätzlichen Aufforderung zur Bestätigung, ob Sie diese Änderungen tatsächlich übernehmen möchten.
Sobald Sie „Ja“ eingeben, beginnt Terraform EC2 mit der Bereitstellung der Terraform EC2-Instanz, indem es die AWS-APIs mit dem im Anmeldeinformationsfile angegebenen Zugriffsschlüssel aufruft. Dies kann einige Zeit dauern. Sobald der Vorgang abgeschlossen ist, sehen Sie etwas Ähnliches wie unten dargestellt:
Zerstörung der AWS EC2-Instanz
Wenn Sie mit der Testumgebung fertig sind, können Sie die Instanz zerstören.
Geben Sie in Ihrer Befehls-/PowerShell-Konsole „terraform destroy“ ein. Wie bei dem Befehl „apply“ sehen Sie eine Liste der Ressourcen, die Terraform zerstören wird, und dann eine Aufforderung, bevor sie tatsächlich zerstört werden.
Sobald Sie „Ja“ eingeben, beginnt Terraform EC2 mit der Zerstörung der Instanz und bestätigt, wenn der Vorgang abgeschlossen ist.