IT-Ressourcen automatisch mit Terraform konfigurieren


    Tags: , ,

    IaC mit TerraformTerraform ist eine Lösung für Infrastructure-as-Code (IaC) von HashiCorp. Damit kann man deklarativ die gewünschte Struktur einer privaten oder öffentlichen Cloud festlegen, und das Tool setzt diese dann selbständig um. Die Software hilft auch dabei, Abweichungen von einer gewünschten Konfiguration automatisch zu korrigieren.

    Da immer mehr Umgebungen agil arbeiten, sind häufige und schnell umsetzbare Aktualisierungen an der Tagesordnung. Das lässt sich ohne Automatisierung kaum realisieren.

    Terraform ermöglicht nicht nur die Automatisierung von Cloud-Umgebungen wie Azure, AWS und GCP, sondern kann auch in lokalen Umgebungen zum Einsatz kommen, um zum Beispiel VMs auf VMware vSphere oder Ressourcen in OpenStack zu definieren.

    Auf VMware vSphere kann Terraform neben VMs auch Storage und virtuelle Netzwerke erstellen und anpassen. Dabei gibt man zum Beispiel die Zahl der vCPUs sowie die Größe des Arbeitsspeichers an und bestimmt das Netzwerk, mit dem sich die VM verbinden soll.

    Interessant ist das Tool daher auch für Multi-Cloud-Umgebungen, weil man damit in öffentlichen Clouds und on-prem parallel Ressourcen erstellen und automatisiert konfigurieren kann. Das beschleunigt nicht nur den Vorgang, sondern vermeidet auch Fehlkonfigurationen.

    Umgebungen automatisiert ändern

    Mit Terraform lassen sich nicht nur neue Umgebungen erstellen, sondern diese auch ändern. Erkennt es, dass einige Ressourcen bereits in der gewünschten Form vorliegen, dann belässt es diese in diesem Zustand.

    Weicht die Konfiguration von Ressourcen aber von der Definition ab oder sind sie nicht vorhanden, dann passt Terraform diese an oder erstellt automatisch die fehlenden Objekte. Dabei kann man auch festlegen, dass Terraform nichtkonforme Objekte löscht und gemäß der Definition im Code neu erstellt.

    Man kann die Konfigurationsdateien auch in einer Versionskontrolle wie Git speichern. Dadurch lassen sich Infrastruktur­änderungen nachverfolgen, überprüfen und wiederholbar machen.

    Schließlich bietet Terraform die Option, die Ausführung einer Konfiguration zu simulieren, um DevOps beim Design einer Umgebung zu unterstützen.

    Terraform in der Befehlszeile und im Terminal nutzen

    Zur Definition einer Umgebung nutzen Administratoren und Entwickler die HashiCorp Configuration Language (HCL) und JSON. Der Code ist einfach gehalten und sehr übersichtlich. Terraform legt die Objekte in der Reihenfolge an, in der sie voneinander abhängen.

    Nach dem Download von Terraform auf einen lokalen Rechner mit Windows, Linux und macOS, kann man im Terminal den Befehl terraform aufrufen, der die Konfigurationsdateien umsetzt. Die kostenpflichtige Enterprise-Version bietet auch eine grafische Oberfläche.

    Entwickler können das Tool als Erweiterung in Visual Studio einbinden. Durch die Eingabe von

    terraform -help

    zeigt das Tool alle zur Verfügung stehenden Optionen an.

    Online-Hilfe von Terraform

    Zusätzlich existiert für jeden Parameter eine eigene Hilfe, zum Beispiel mit

    terraform -help plan

    Terraform bietet auch eine Hilfe für die einzelnen Parameter an.

    Die Scripts zum Umsetzen der Aktionen initialisiert man zunächst mit

    terraform init

    Beim Einsatz mit VMware vSphere initialisiert Terraform auch gleich den betreffenden Agent, HashiCorp spricht hier von einem Provider.

    Wenn die Konfigurations­dateien mit den vorgesehenen Anweisungen hinterlegt sind, kann Terraform im Terminal mit

    terraform plan

    die Syntax überprüfen. Hier ist dann auch zu sehen, welche Aktionen Terraform bei einer Ausführung umsetzen würde. Diese startet man mit

    terraform apply

    Für das Aktualisieren einer bereits vorhandenen Umgebung ist

    terraform refresh

    zuständig.

    Der Befehl

    terraform destroy

    macht alle Aktionen wieder rückgängig.

    Dabei löscht Terraform aber alle in der Konfigurationsdatei angegebenen Ressourcen und deren Abhängigkeiten. Am Beispiel von VMware vSphere zeigen die Entwickler in der Dokumentation die Konfiguration und Steuerung des VMware vSphere-Providers für Terraform.

    In der Dokumentation von Terraform sind verschiedene Beispiele zu finden, wie sich Konfigurations­dateien aufbauen lassen. An dieser Stelle gibt es auch Vorlagen für die Erstellung von Docker-Containern mit Terraform.

    Verfügbarkeit und Lizenzierung

    Terraform steht als Community-Edition auf der Download-Seite bei HashiCorp kostenlos zur Verfügung. Für größere Unternehmen, die Terraform selbst bereitstellen wollen, gibt es die Enterprise-Version.

    Die Software kann on-prem auf Windows, Linux und macOS installiert werden. Darüber hinaus existieren die Cloud-basierten Editionen Standard und Plus. Bis zu 500 Ressourcen lassen sich auch kostenlos in der Terraform Cloud verwalten.

    Die beiden wichtigsten Tools Terraform und Vagrant von HashiCorp unterliegen in Zukunft der Business Source License (BSL). Bisher wurden die Produkte nach der Mozilla Public License (MPL) lizenziert.

    Damit handelt es sich bei Terraform genau gesehen nicht mehr um eine Open Source-Lizenz. Der Quellcode ist zwar weiterhin frei verfügbar, es ist aber künftig mit Einschränkungen bei der kommerziellen Nutzung zu rechnen

    Als Reaktion auf die Lizenzänderung kündigten mehrere Entwickler einen so genannten Fork des Projekts an und führen es unter der MPL als Open Source fort.

    Täglich Know-how für IT-Pros mit unserem Newsletter

    Wir ver­wenden Ihre Mail-Adresse nur für den Ver­sand der News­letter.
    Es erfolgt keine per­sonen­be­zogene Auswertung.

    Bild von Thomas Joos

    Thomas Joos ist Consultant für mittlere und große Unternehmen im Bereich Security, Active Directory, Cloud und KI.

    Er hat über 100 Fachbücher zu IT-Themen für verschiedene Verlage geschrieben und veröffentlicht regelmäßig bei verschiedenen Portalen und Zeitschriften wie IT-Administrator, Computerwoche, Heise und vielen weiteren.

    Darüber hinaus ist er als Trainer für LinkedIn Learning tätig.

    // Kontakt: Web, E-Mail, Twitter //

    Verwandte Beiträge

    Weitere Links