Tags: Configuration-Management, vSphere, Compliance
Terraform 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.
Zusätzlich existiert für jeden Parameter eine eigene Hilfe, zum Beispiel mit
terraform -help plan
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 Konfigurationsdateien 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 Konfigurationsdateien 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
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.
Verwandte Beiträge
- VMware vSphere 8 Update 1: Configuration Profiles nun GA, erweiterter TPM -Support, Okta als Identity Provider
- Runecast Analyzer: Sicherheitseinstellungen automatisch prüfen on-prem und in der Cloud
- vSphere Lifecycle Manager: ESXi-Hosts mit Cluster-Image aktualisieren
- Neu in VMware vSphere 7 U1: Tanzu-Integration, höhere Configuration Maximums, SMB-Support für vSAN File Services
- Updates für vCenter 7 mit dem neuen Update Planner verwalten
Weitere Links