Ü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.