Startseite > Sonstige externe Pakete > terraform

terraform: Infrastruktur-Provisionierung und -Verwaltung

Terraform ist ein Open-Source-IaC-Tool (Infrastructure as Code), das von HashiCorp entwickelt wurde. Es ermöglicht Ihnen, Cloud- und On-Premises-Ressourcen sicher und effizient mithilfe von Code bereitzustellen und zu verwalten. Sie definieren den gewünschten Infrastrukturzustand über deklarative Konfigurationsdateien, und Terraform plant und führt automatisch die Schritte aus, um diesen Zustand zu erreichen.

Übersicht

Terraform implementiert den IaC-Ansatz (Infrastructure as Code) zur Verwaltung von Infrastruktur als Code, wodurch Fehler bei der manuellen Konfiguration reduziert und die Konsistenz und Wiederholbarkeit von Infrastruktur-Deployments gewährleistet werden. Es unterstützt verschiedene Cloud-Anbieter (AWS, Azure, GCP usw.) und On-Premises-Lösungen und bietet leistungsstarke Funktionen zur Planung und Überprüfung von Infrastrukturänderungen im Voraus.

Hauptmerkmale

  • Infrastruktur als Code (IaC): Definieren Sie Ihre Infrastruktur als Code mit HCL (HashiCorp Configuration Language).
  • Multi-Cloud-Unterstützung: Unterstützt eine Vielzahl von Cloud- und Dienstanbietern wie AWS, Azure, GCP und mehr.
  • Zustandsverwaltung: Verfolgt den tatsächlichen Zustand Ihrer Infrastruktur, um Änderungen effizient zu verwalten.
  • Vorschau des Ausführungsplans: Sehen Sie im Voraus, welche Ressourcen erstellt, geändert oder gelöscht werden, bevor Sie Änderungen anwenden.

Hauptbefehle (Subcommands)

Terraform führt Workflow-Aufgaben zur Infrastrukturverwaltung über verschiedene Subcommands aus.

Kern-Workflow

Dienstprogramme

Erzeugter Befehl:

Kombinieren Sie die Befehle.

Beschreibung:

`terraform` Führen Sie den Befehl aus.

Kombinieren Sie diese Optionen und führen Sie die Befehle virtuell zusammen mit der KI aus.

Anwendungsbeispiele

Beispiele, die den typischen Workflow von Terraform veranschaulichen.

Terraform-Projekt initialisieren

terraform init

Starten Sie ein neues Terraform-Projekt oder klonen Sie ein bestehendes und führen Sie diesen Befehl aus, um die erforderlichen Provider herunterzuladen.

Vorschau auf Infrastrukturänderungspläne

terraform plan

Überprüfen Sie im Voraus, wie die in den Konfigurationsdateien definierten Änderungen auf Ihre tatsächliche Infrastruktur angewendet werden. In diesem Schritt werden keine tatsächlichen Ressourcenänderungen vorgenommen.

Infrastruktur bereitstellen oder aktualisieren

terraform apply --auto-approve

Wendet die im Plan-Befehl überprüften Änderungen tatsächlich auf Ihre Cloud- oder On-Premises-Infrastruktur an. Die Option `--auto-approve` überspringt die Bestätigungsaufforderung.

Infrastrukturressourcen entfernen

terraform destroy --auto-approve

Zerstört alle von Terraform verwalteten Ressourcen. Dieser Befehl sollte mit äußerster Vorsicht verwendet werden.

Konfigurationsdateien formatieren

terraform fmt

Ordnet alle Terraform-Konfigurationsdateien (.tf) im aktuellen Verzeichnis automatisch in einem Standardformat an.

Installation

Terraform ist nicht standardmäßig in den meisten Linux-Distributionen enthalten und muss von der offiziellen HashiCorp-Website heruntergeladen und installiert werden. Hier ist die empfohlene Installationsmethode für Debian/Ubuntu-basierte Systeme.

Installation über APT-Repository (Debian/Ubuntu)

sudo apt-get update && sudo apt-get install -y gnupg software-properties-common curl
curl -fsSL https://apt.releases.hashicorp.com/gpg | sudo apt-key add -
sudo apt-add-repository "deb [arch=amd64] https://apt.releases.hashicorp.com $(lsb_release -cs) main"
sudo apt-get update && sudo apt-get install terraform

So fügen Sie das offizielle HashiCorp APT-Repository hinzu und installieren Terraform. Diese Methode erleichtert die Aktualisierung auf die neueste Version.

Installationsprüfung

Überprüfen Sie nach der Installation mit dem folgenden Befehl, ob Terraform korrekt installiert wurde.

Versionsprüfung

terraform -v

Tipps & Hinweise

Tipps und Hinweise zur effektiven Nutzung von Terraform und zur Vermeidung potenzieller Probleme.

Wichtige Tipps

  • Zustandsdatei-Verwaltung: Die Datei `terraform.tfstate` zeichnet den aktuellen Zustand Ihrer Infrastruktur auf. Es wird empfohlen, sie sicher zu verwalten und nicht direkt in Ihr Versionskontrollsystem aufzunehmen. Die Verwendung von Remote-Backends wie S3, Azure Blob Storage oder GCS ist üblich.
  • Modulnutzung: Die Erstellung und Verwaltung wiederverwendbarer Infrastrukturkomponenten als Module verbessert die Lesbarkeit und Wartbarkeit Ihres Codes.
  • Planprüfung: Überprüfen Sie immer die Änderungen mit dem Befehl `terraform plan`, um unbeabsichtigte Ressourcenänderungen oder -löschungen zu vermeiden. Dies ist besonders wichtig in Produktionsumgebungen.
  • Versionskontrolle: Verwalten Sie Ihre Terraform-Konfigurationsdateien (.tf) unbedingt mit einem Versionskontrollsystem wie Git, um den Änderungsverlauf zu verfolgen und die Zusammenarbeit zu erleichtern.
  • Umgang mit sensiblen Daten: Vermeiden Sie es, sensible Informationen wie API-Schlüssel oder Passwörter direkt in Konfigurationsdateien einzubetten. Verwenden Sie stattdessen Umgebungsvariablen, Terraform-Variablen (tfvars) oder Geheimnisverwaltungs-Tools wie Vault.

Hinweise

  • Der Befehl `terraform destroy` ist irreversibel. Überprüfen Sie ihn immer sorgfältig, bevor Sie ihn ausführen, und führen Sie gegebenenfalls ein Backup durch.
  • Beschädigung der Zustandsdatei: Wenn die Zustandsdatei beschädigt wird, kann Terraform den tatsächlichen Zustand der Infrastruktur nicht korrekt erfassen, was zu Problemen führen kann. Reduzieren Sie dieses Risiko durch die Verwendung von Remote-Backends und Sperrfunktionen.
  • Versionskonflikte: Inkonsistenzen zwischen der Terraform CLI-Version und den Provider-Versionen können zu unerwartetem Verhalten führen. Es wird empfohlen, die Provider-Versionen mithilfe der Datei `.terraform.lock.hcl` zu fixieren.

Gleiche Kategorie Befehle