Log In
Or create an account ->
Imperial Library
Home
About
News
Upload
Forum
Help
Login/SignUp
Index
Aus dem Lektorat
Hinweise zur Benutzung und Bildschirmdarstellung
Inhaltsverzeichnis
Materialien zum Buch
1 Einleitung
1.1 Gliederung
1.1.1 Was Sie schon wissen sollten
1.1.2 Was Sie in diesem Buch lernen und nicht lernen werden
1.2 Voraussetzungen für das Arbeiten mit Terraform
1.3 Zu den Autoren dieses Werks
2 Was ist Terraform?
2.1 Cloud Computing und seine Auswirkungen
2.2 Das Prinzip Infrastructure as Code
2.3 Terraform, seine Geschichte und seine Funktionsweise
2.4 Wie funktioniert die Cloud?
2.5 Ansible, Chef, Salt, Puppet, Terraform – welches Werkzeug für welche Aufgabe?
3 Erste Schritte mit Terraform
3.1 Installation von Terraform
3.1.1 Installation unter Windows
3.1.2 Installation unter macOS
3.1.3 Installation unter Linux und anderen Unix-artigen Betriebssystemen
3.2 Schnelleinstieg: Ein typischer Terraform-Workflow
3.2.1 Erstellen eines neuen Projektverzeichnisses
3.2.2 Der Befehl terraform init
3.2.3 Die erste Ressource
3.2.4 Der Befehl terraform plan
3.2.5 Der Befehl terraform apply
3.2.6 Deklarative Beschreibung des Zustands
3.2.7 Die Datei terraform.tfstate
3.2.8 Der Befehl terraform destroy
3.3 Konventionen für Dateinamen und Unterordner
3.3.1 Empfehlungen für kleinere Projekte
3.3.2 Empfehlungen für größere Projekte
3.4 Ordnerstruktur
4 Provider
4.1 Provider finden und installieren
4.1.1 Provider finden
4.1.2 Provider und deren Versionen
4.1.3 Provider verwenden
4.2 Konfiguration und Authentifizierung
4.3 Szenarien: So deployen Sie Terraform
4.3.1 AWS
4.3.2 Google Cloud Platform
4.3.3 Azure
4.3.4 OpenStack
4.3.5 libvirt
4.3.6 VMware
4.3.7 Weitere Provider im Überblick
5 State – der Zustand der Umgebung
5.1 Interaktion mit dem State
5.2 Format
5.3 Speicherort des State
5.3.1 Remote Backends – Beispiele für entfernte Speicherorte
5.3.2 Einrichten eines Remote Backend
5.4 State durch Locking verriegeln
5.5 Sicherheit
5.5.1 Backends
5.5.2 Zugangsdaten
6 Variablen und Datenquellen
6.1 Was sind Variablen?
6.2 Eingabevariablen setzen und verwenden
6.2.1 Einfache Eingabevariablen
6.2.2 Nutzung von Variablen
6.2.3 Syntax bei der Nutzung von Variablen
6.2.4 Übergeben von Variablen auf der Kommandozeile
6.2.5 Eingabevariablen mit Standardwert
6.2.6 Übergeben von Variablen über tfvars-Dateien
6.2.7 Zuweisen von Werten über Umgebungsvariablen
6.2.8 Präzedenz von Variablenzuweisungen
6.2.9 Empfehlungen zum Zuweisen von Variablen
6.2.10 Beschränkungen bei der Wahl von Variablennamen
6.2.11 Variablendeklaration im Detail
6.3 Ausgabewerte (Outputs)
6.3.1 Verwendung von Ausgabenwerten
6.3.2 Beispiel eines Ausgabewerts
6.3.3 Ausgabewerte mit Beschreibung
6.3.4 Ausgabewerte mit vertraulichen Daten
6.4 Lokale Variablen oder Werte
6.5 Datenquellen (Data Sources)
6.5.1 Beispiel: Auflistung von Maschinentypen in GCP
6.5.2 Beispiel: Übersetzung von Ressourcennamen in IDs
6.5.3 Beispiel: Einlesen von Dateien
6.5.4 Beispiel: Externer State als Datenquelle
6.6 Interne Werte und Block-lokale Werte
6.6.1 Interne Werte
6.6.2 Block-lokale Werte
7 Terraform programmieren – die Sprache HCL
7.1 Logikfunktionen
7.1.1 Die count-Anweisung
7.1.2 Die for_each-Anweisung
7.1.3 Die for-Anweisung
7.1.4 Bedingungen (Conditionals)
7.1.5 Dynamische Blöcke (Dynamic Blocks)
7.2 Provisioner als Schnittstellen zum Konfigurationsmanagement
7.2.1 Nutzung eines Provisioners mit einer null_resource
7.2.2 Ausführen eines Provisioners beim Erstellen oder Entfernen von Ressourcen
7.2.3 Konfiguration der Verbindungsparameter für die Provisioner file und remote-exec
7.2.4 Der local-exec-Provisioner
7.2.5 Der file-Provisioner
7.2.6 Der remote-exec-Provisioner
7.2.7 Verfügbarkeit über Provisioner prüfen
7.2.8 Der Block-lokale Wert self
7.2.9 Alternative Ansätze zur Konfiguration virtueller Maschinen über Provisioner
7.3 Abhängigkeiten verwalten
7.3.1 Abhängigkeiten von Modulen oder Providern
7.3.2 Abhängigkeiten von Ressourcen
7.3.3 Explizite Abhängigkeiten von Ressourcen
7.4 Arbeiten mit Terraform-Modulen
7.4.1 Eigenen Code in Module auslagern
7.4.2 Variablen und Rückgabewerte übergeben
7.4.3 Nutzung von Modulen aus der Terraform Registry
7.5 Deployments versionieren
7.5.1 Hochverfügbarkeit und Vorüberlegungen zum Aufbau der Infrastruktur
7.5.2 Hochverfügbarkeit auf Terraform-Ebene
7.5.3 Providerspezifische Besonderheiten in Bezug auf Hochverfügbarkeit
7.6 Code modularisieren und strukturieren: Best Practices für Terraform
7.6.1 Versionsverwaltung Ihres Terraform-Codes
7.6.2 Module einbinden
7.7 Funktionen
7.8 Ausdrücke und Expressions
7.8.1 Zeichenketten und Interpolation in Zeichenketten
7.8.2 Operatoren
7.8.3 Platzhalter (Splat Expressions)
7.9 Nützliche Funktionen und Beispiele
7.9.1 Die element-Funktion
7.9.2 Verschachtelte Variablen
7.9.3 Die abspath-Funktion
7.9.4 Die pathexpand-Funktion
7.9.5 Die lookup-Funktion
7.9.6 Der count-Parameter
7.9.7 Der Block-lokale Wert count.index
7.9.8 Validierung von Benutzereingaben
7.9.9 Typprüfungen zur Validierung von Benutzereingaben
7.9.10 TF_VAR_-Umgebungsvariablen
8 Updates und Day 2 Operations
8.1 Backup, Backup, Backup
8.2 Überprüfung und automatische Qualitätskontrollen für Terraform-Code
8.3 Mit Terraform arbeiten
8.4 Überwachung (Monitoring) der Umgebung
8.4.1 Horizontale Skalierung bei Lastspitzen
8.4.2 Vertikale Skalierung von virtuellen Maschinen
8.4.3 Wenn horizontale Skalierung nicht mehr ausreicht
8.5 Updates und Änderungen einspielen
8.5.1 Immutable Infrastructure
8.5.2 Koordiniertes Ausrollen neuer Versionen
8.5.3 Umsetzung der Release-Strategien mit Terraform
8.5.4 Ausrollen neuer Betriebssystemabbilder
8.6 Lifecycle-Management mit Terraform
8.6.1 Der lifecycle-Parameter
8.6.2 Erzwingen des Neuerstellens von Ressourcen
8.7 Day 2 Operations für Terraform
8.7.1 Workflow zum Arbeiten mit Terraform
8.7.2 Backups von Terraform und dem State
9 Erfahrungswerte, Tipps und Tricks
9.1 Versionsverwaltung nutzen
9.1.1 Dateien aus der Versionsverwaltung ausschließen
9.2 Remote Backends nutzen
9.3 Terraform-Code strukturieren durch Nutzung von Modulen
9.3.1 Erster Schritt: Statischer Terraform-Code
9.3.2 Zweiter Schritt: Module nutzen
9.3.3 Dritter Schritt: Weitere Parametrisierung des Terraform-Codes
9.3.4 Vierter Schritt: Providerunterschiede abstrahieren
9.3.5 Fünfter Schritt: Mehrfachnutzung für verschiedene Kunden
9.4 Terraform-Code und Repository logisch strukturieren
9.4.1 Empfehlungen für Dateinamen
9.4.2 Trennung nach Landschaften oder Systemumgebungen
9.4.3 Benennung von Ressourcen
9.5 Terraform-Code prüfen, kontrollieren und testen
9.5.1 Prüfung auf korrekte Syntax
9.5.2 Prüfung auf Einhaltung von Codekonventionen
9.5.3 Beispiel für ein Makefile
9.6 Variablen mit Standardwert null
9.7 Zugriff auf geschachtelte Listen
10 Vorgefertigtes Beispiel
10.1 Szenario
10.2 Vorbereitung
10.2.1 SSH-Schlüssel anlegen
10.2.2 Infrastruktur auswählen
10.3 Das Deployment
11 Ausblick
11.1 Automate the Automation
11.2 Terraform Cloud und Enterprise
11.2.1 Nutzung von Terraform Cloud und Terraform Enterprise
11.2.2 Benutzerzugang erstellen und testen
11.3 Terragrunt, Timon und weitere Tools
11.3.1 Terragrunt
11.3.2 Timon
11.3.3 Terratest
11.3.4 Werkzeuge zum Importieren bestehender Infrastruktur
11.4 Cloud Development Kit Terraform (CDKTF)
12 Kommandoreferenz
12.1 Allgemeine Parameter
12.1.1 Der Parameter -chdir
12.1.2 Hilfe anzeigen per -help
12.1.3 Der Parameter -version
12.2 Wichtige Befehle
12.2.1 Der Befehl terraform init
12.2.2 Der Befehl terraform validate
12.2.3 Der Befehl terraform plan
12.2.4 Der Befehl terraform apply
12.2.5 Der Befehl terraform destroy
12.3 Weniger häufig verwendete Befehle
12.3.1 Der Befehl terraform console
12.3.2 Der Befehl terraform fmt
12.3.3 Der Befehl terraform force-unlock
12.3.4 Der Befehl terraform get
12.3.5 Der Befehl terraform graph
12.3.6 Der Befehl terraform import
12.3.7 Der Befehl terraform login
12.3.8 Der Befehl terraform logout
12.3.9 Der Befehl terraform output
12.3.10 Der Befehl terraform providers
12.3.11 Der Befehl terraform refresh
12.3.12 Der Befehl terraform show
12.3.13 Der Befehl terraform state
12.3.14 Der Befehl terraform taint
12.3.15 Der Befehl terraform untaint
12.3.16 Der Befehl terraform version
12.3.17 Der Befehl terraform workspace
12.4 Konfigurationsoptionen für die Terraform-CLI (alias Terraform Settings)
12.4.1 Speicherort der Konfigurationsdatei
12.4.2 Aufbau der Konfigurationsdatei
Stichwortverzeichnis
Die Serviceseiten
Rechtliche Hinweise
Über das Autorenteam
← Prev
Back
Next →
← Prev
Back
Next →