Terraform (eBook)
495 Seiten
Rheinwerk Computing (Verlag)
978-3-8362-8915-3 (ISBN)
Tim Beermann, Johannes Kastl, Christian Rost, Thorsten Schifferdecker und Eike Waldt zeigen Ihnen, wie Sie Deployments verwalten, Ressourcen mit HCL skripten und den State Ihres Setups verwalten.
So gerüstet entwerfen Sie wiederverwendbaren Code, vermeiden Fallstricke und schaffen einen komfortablen Arbeitsweg zur Verwaltung Ihrer Cloud-Landschaften.
Infrastructure as Code
Der Schlüssel für einen entspannten Admin-Alltag sind maschinenlesbare und reproduzierbare Konfigurationen, mit denen Setups automatisiert orchestriert werden. Wie Sie Zeit, Geld und Nerven beim Betrieb von Cloud-Infrastrukturen sparen, zeigen Ihnen die Hinweise und Beispiele aus diesem Leitfaden.
Automatisieren und dokumentieren
Wollen Sie jeden einzelnen Ihrer Server per Hand konfigurieren? Sich einen individuellen Hostnamen ausdenken und die Festplatte ausschrauben, wenn der Platz knapp wird? Natürlich nicht! Das Team von B1 Systems und OSISM begleitet Sie auf dem Weg zu einer automatisierten und gut dokumentierten Umgebung, in der Änderungen transparent per Code organisiert werden.
Praxisszenarien für reibungslose Deployments
In einer modernen CI/CD-Pipeline müssen viele Tools zusammenspielen. Zahlreiche Praxisbeispiele und Deployment-Szenarien dienen Ihnen als Vorlage für eigene Projekte, in denen Ressourcen in der Cloud verwaltet werden.
Tim Beermann ist seit frühester Jugend begeisterter Linuxadministrator. Während seiner Laufbahn hat er ein ERP-System mitentwickelt und Serverlandschaften sowie Cloudumgebungen betreut.
Johannes Kastl ist seit frühen SUSE-Tagen begeisterter Linuxnutzer. Er war mehrere Jahre in der Administration einer großen privaten Cloud-Landschaft tätig, unter anderem als Administrator, technischer Product Owner, Scrum Master und Teamkoordinator.
Christian Rost begleitet und verantwortet große und kleine Projekte im Container- und Kubernetesumfeld, plant und baut Logging- und Monitoringlösungen mit Elasticstack und steht für das ein oder andere ownCloud-Projekt zur Verfügung.
Thorsten Schifferdecker ist seit mehr als 20 Jahren begeisterter Linuxnutzer und in der IT als Architekt tätig.
Eike Waldt hat während seiner Laufbahn viele SUSE- und SAP-Projekte begleitet und geleitet. Innerhalb dieser Projekte entwarf er komplexe Mechanismen zur Verwaltung von gewachsenen Landschaften und strukturierte gewachsene Code-Sammlungen mittels DevOps und CI.
Materialien zum Buch ... 12
1. Einleitung ... 13
1.1 ... Gliederung ... 13
1.2 ... Voraussetzungen für das Arbeiten mit Terraform ... 16
1.3 ... Zu den Autoren dieses Werks ... 17
2. Was ist Terraform? ... 21
2.1 ... Cloud Computing und seine Auswirkungen ... 21
2.2 ... Das Prinzip Infrastructure as Code ... 22
2.3 ... Terraform, seine Geschichte und seine Funktionsweise ... 23
2.4 ... Wie funktioniert die Cloud? ... 24
2.5 ... Ansible, Chef, Salt, Puppet, Terraform -- welches Werkzeug für welche Aufgabe? ... 26
3. Erste Schritte mit Terraform ... 29
3.1 ... Installation von Terraform ... 29
3.2 ... Schnelleinstieg: Ein typischer Terraform-Workflow ... 40
3.3 ... Konventionen für Dateinamen und Unterordner ... 53
3.4 ... Ordnerstruktur ... 56
4. Provider ... 57
4.1 ... Provider finden und installieren ... 57
4.2 ... Konfiguration und Authentifizierung ... 66
4.3 ... Szenarien: So deployen Sie Terraform ... 68
5. State -- der Zustand der Umgebung ... 185
5.1 ... Interaktion mit dem State ... 187
5.2 ... Format ... 189
5.3 ... Speicherort des State ... 190
5.4 ... State durch Locking verriegeln ... 208
5.5 ... Sicherheit ... 210
6. Variablen und Datenquellen ... 213
6.1 ... Was sind Variablen? ... 214
6.2 ... Eingabevariablen setzen und verwenden ... 214
6.3 ... Ausgabewerte (Outputs) ... 238
6.4 ... Lokale Variablen oder Werte ... 241
6.5 ... Datenquellen (Data Sources) ... 243
6.6 ... Interne Werte und Block-lokale Werte ... 247
7. Terraform programmieren -- die Sprache HCL ... 255
7.1 ... Logikfunktionen ... 255
7.2 ... Provisioner als Schnittstellen zum Konfigurationsmanagement ... 268
7.3 ... Abhängigkeiten verwalten ... 290
7.4 ... Arbeiten mit Terraform-Modulen ... 295
7.5 ... Deployments versionieren ... 304
7.6 ... Code modularisieren und strukturieren: Best Practices für Terraform ... 309
7.7 ... Funktionen ... 315
7.8 ... Ausdrücke und Expressions ... 332
7.9 ... Nützliche Funktionen und Beispiele ... 338
8. Updates und Day 2 Operations ... 353
8.1 ... Backup, Backup, Backup ... 353
8.2 ... Überprüfung und automatische Qualitätskontrollen für Terraform-Code ... 354
8.3 ... Mit Terraform arbeiten ... 355
8.4 ... Überwachung (Monitoring) der Umgebung ... 355
8.5 ... Updates und Änderungen einspielen ... 359
8.6 ... Lifecycle-Management mit Terraform ... 369
8.7 ... Day 2 Operations für Terraform ... 379
9. Erfahrungswerte, Tipps und Tricks ... 387
9.1 ... Versionsverwaltung nutzen ... 387
9.2 ... Remote Backends nutzen ... 390
9.3 ... Terraform-Code strukturieren durch Nutzung von Modulen ... 390
9.4 ... Terraform-Code und Repository logisch strukturieren ... 398
9.5 ... Terraform-Code prüfen, kontrollieren und testen ... 404
9.6 ... Variablen mit Standardwert null ... 411
9.7 ... Zugriff auf geschachtelte Listen ... 412
10. Vorgefertigtes Beispiel ... 415
10.1 ... Szenario ... 415
10.2 ... Vorbereitung ... 416
10.3 ... Das Deployment ... 419
11. Ausblick ... 423
11.1 ... Automate the Automation ... 423
11.2 ... Terraform Cloud und Enterprise ... 425
11.3 ... Terragrunt, Timon und weitere Tools ... 437
11.4 ... Cloud Development Kit Terraform (CDKTF) ... 442
12. Kommandoreferenz ... 445
12.1 ... Allgemeine Parameter ... 445
12.2 ... Wichtige Befehle ... 446
12.3 ... Weniger häufig verwendete Befehle ... 458
12.4 ... Konfigurationsoptionen für die Terraform-CLI (alias Terraform Settings) ... 485
Index ... 491
1 Einleitung
Sehr geehrte Leserin, sehr geehrter Leser,
wir freuen uns, dass wir Sie auf eine Reise in Richtung Infrastructure as Code und Terraform mitnehmen dürfen. Wir wünschen Ihnen einen angenehmen Flug, am Ziel erwartet uns herrliches Wetter.
Spaß beiseite, schön, dass Sie den Umgang mit Terraform lernen wollen. Infrastructure as Code ist aus unserem Alltag nicht mehr wegzudenken. Nehmen Sie sich Zeit, sich über die Vor- und Nachteile des Arbeitens mit Terraform zu informieren. Finden Sie den passenden Weg für sich, Ihr Team und Ihr Unternehmen, um Ihre Infrastruktur zu organisieren und zu verwalten.
Wir wünschen gutes Gelingen!
Tim Beermann
Johannes Kastl
Eike Waldt
Christian Rost
Thorsten Schifferdecker
1.1 Gliederung
Die nächsten Abschnitte verraten Ihnen, was Sie wissen sollten, bevor Sie mit diesem Buch loslegen können. Sie erfahren, was Sie lernen werden und was nicht zum Ziel dieses Buchs gehört.
Kapitel 2 führt in grundlegende Prinzipien und Denkweisen ein und unterfüttert das beliebte Buzzword Bingo (DevOps! IaC! Cloud!) mit solidem Hintergrundwissen. Ziel ist es nicht, Sie mit langatmigen Ausschweifungen zu langweilen. Dennoch sollen Sie verstehen, wieso Terraform in den letzten Jahren so eine steile Karriere hingelegt hat und womit das zusammenhängt.
Kapitel 3 zeigt die Installation von Terraform und bringt Ihnen die ersten Befehle zum Arbeiten mit Terraform näher.
In Kapitel 4 dürfen Sie dann die ersten Ressourcen bei einem Cloud-Anbieter aufbauen. Das Beispielszenario wird für die Cloud-Anbieter AWS, Microsoft Azure und Google Cloud Platform sowie die Technologien OpenStack, VMware und libvirt gezeigt.
Kapitel 5 behandelt das Gehirn von Terraform, den sogenannten State, und zeigt, was Sie darüber wissen müssen und was Sie damit machen können.
In Kapitel 6 zeigen wir Ihnen Eingabevariablen, Ausgabewerte und dergleichen mehr. Sie lernen verschiedene Wege kennen, auf denen Sie Variablen Werte zuweisen können, und erfahren, wann welcher Weg sinnvoll oder schwierig umzusetzen ist.
Die von Terraform verwendete Beschreibungssprache HCL (HashiCorp Configuration Language) wird in Kapitel 7 detailliert behandelt. Sie erfahren (fast) alles über Anweisungen, Funktionen, Module und derlei Dinge mehr. Auch das Thema Versionsverwaltung wird hier erstmalig eingehender besprochen.
Kapitel 8 befasst sich mit den anstehenden Aufgaben nach dem ersten erfolgreichen Aufbauen Ihrer Infrastruktur. Dies umfasst Themen wie Aktualisierungen für Terraform und dessen Provider, den Lebenszyklus erstellter Ressourcen und wie Sie Datenverlust vermeiden.
Die Organisation und Struktur Ihres Terraform-Codes ist eines der Themen, die in Kapitel 9 abgehandelt werden. Auch die Handhabung von Zugangsdaten bei der Nutzung einer Versionsverwaltung oder eines Remote Backend werden thematisiert.
In Kapitel 10 wollen wir Ihnen ein in sich abgeschlossenes Deployment vorstellen, das als Beispiel für viele Anwendungsszenarien steht.
Kapitel 11 wagt den Blick über den Tellerrand und schneidet Themen an, die den Umfang dieses Buchs sprengen würden. Dazu gehören Automatisierung rund um Terraform, die Terraform Cloud und Terraform Enterprise sowie Werkzeuge aus dem Terraform-Umfeld, wie z. B. Terragrunt oder Timon.
Eine Kommandozeilenreferenz zu Terraform, all seinen Befehlen und deren Parametern finden Sie in Kapitel 12.
1.1.1 Was Sie schon wissen sollten
Terraform dient zur Verwaltung von Infrastrukturressourcen. In diesem Buch werden Ihnen Ressourcen wie virtuelle Maschinen, Netzwerke, Blockstorage und Ähnliches begegnen. Sie werden es außerdem mit Begriffen wie Webserver, Datenbanken, Loadbalancer und Backups zu tun haben. Sie müssen nicht alle diese Ressourcen und Begriffe im Schlaf definieren und beschreiben können, es reicht, wenn Sie ein Grundverständnis dieser Ressourcen mitbringen. Grundlegende Kenntnisse zu Virtualisierung (Was ist eine virtuelle Maschine?), Netzwerktechnik (Was ist eine IP-Adresse?) und Administration (Wie melden Sie sich per SSH an?) sollten vorhanden sein.
Kapitel 2 führt in Terraform, dessen Nutzung und verwandte Bereiche wie Cloud Computing, DevOps und Infrastructure as Code ein und stellt Terraform in den größeren Kontext.
Terraform ist ein Kommandozeilenprogramm ohne grafische Oberfläche. Sie sollten daher mit dem Arbeiten auf einer Kommandozeile vertraut sein. Im Idealfall kennen Sie sich auf der Kommandozeile des Betriebssystems aus, auf dem Sie Terraform installieren und nutzen wollen. Die Installation selbst wird in Kapitel 3 für verschiedene Betriebssysteme beschrieben.
Die meisten Beispiele werden auf einem Linux-System in einer bash-Shell gezeigt. Linux-Kenntnisse sind nicht notwendig, hier aber durchaus hilfreich. Sie sollten jedoch auch ohne Vorerfahrung verstehen können, was in den Beispielen gezeigt wird.
Anmerkungen
In den Beispielen werden Sie häufiger IP-Adressen sehen. Diese sind lediglich beispielhaft gewählt und werden eventuell nicht bei Ihnen funktionieren.
Die Kapitel führen abwechselnd in femininer und maskuliner Schreibweise durch den Inhalt, um den Lesefluss nicht zu stören.
1.1.2 Was Sie in diesem Buch lernen und nicht lernen werden
Ziel dieses Buchs ist es, Ihnen die Idee hinter Terraform und Infrastructure as Code nahezubringen und Ihnen grundlegende Kenntnisse in Terraform und Terraform-Code zu vermitteln. Hierzu werden »in verschiedenen Clouds«, d. h. bei verschiedenen Cloud-Anbietern, Ressourcen aufgebaut. Sie müssen nicht alle Beispiele durchexerzieren. Es wäre jedoch von Vorteil, wenn Sie Zugang zu einem der vorgestellten Cloud-Anbieter bzw. einer der Technologien haben. Selbstverständlich müssen Sie auch nicht alle Dienste im Portfolio aller Cloud-Anbieter kennen, erklären und verwenden können. Dieses Buch beschränkt sich auf grundlegende Ressourcen.
Sollten Sie noch unerfahren sein, was das Arbeiten mit Cloud-Anbietern angeht, empfehlen wir die hauseigenen Tutorials der Cloud-Anbieter. Hier lernen Sie die Grundlagen zum Arbeiten mit dem Cloud-Anbieter Ihrer Wahl. Wenn Sie diese kennen, können Sie sich voll und ganz darauf konzentrieren, die bekannten Ressourcen mithilfe von Terraform aufzubauen, zu verwalten und gegebenenfalls zu entfernen. Für Anwender, die für den Cloud-Provider ein Benutzerkonto ihrer Organisation verwenden, mag es einfacher sein, sich einen neuen Benutzerzugang zu erstellen, der nicht mit ihrer Unternehmensorganisation verbandelt ist. Zum einen reicht das kostenlose Probekonto aus, um die Beispiele in diesem Buch durchzuspielen, zum anderen besteht weniger Risiko, existierende Infrastruktur während Ihrer Experimente zu beeinträchtigen. Darüber hinaus kann es sein, dass Dinge wie Tokens oder technische Benutzer mit den Rechten Ihres Unternehmenszugangs nicht erstellt werden dürfen. Im Zweifel hilft hier Ihr unternehmensinterner Ansprechpartner für den Zugang zu Ihrem Cloud-Anbieter.
Zertifizierung zu Terraform
Ein Hinweis in eigener Sache: Die Firma HashiCorp bietet eine Zertifizierung zu Terraform an. Wir weisen darauf hin, dass dieses Buch nicht für die Vorbereitung auf die Zertifizierung ausreicht. Sollte eine Zertifizierung geplant sein, verwenden Sie bitte zusätzlich das Lernmaterial, das HashiCorp selbst frei zugänglich bereitstellt. Lesen Sie die gesamte Dokumentation zur Terraform-Sprache HCL. Es werden zum Beispiel detaillierte Fragen zu Funktionen oder auch zur Terraform Cloud gestellt.
Dieses Buch hat den Anspruch, Neulingen und Einsteigerinnen die Grundlagen des Arbeitens mit Terraform beizubringen. Sie werden an die Hand genommen und durch die ersten Beispiele geführt. Sie erhalten solide Grundkenntnisse in Terraform wie dem State und in der Terraform-eigenen HCL-Auszeichnungssprache und den darin enthaltenen Funktionen. Sie erhalten Erfahrungswerte zu Dingen wie Ordnerstrukturen und Dateinamenskonventionen, zur Modularisierung des Terraform-Codes und zu den weiteren Schritten nach dem berühmten ersten Schritt.
Dieses Buch erhebt keinen Anspruch auf Vollständigkeit. Es ist schlicht nicht das Ziel, alle verfügbaren Konstellationen, Parameter und Sonderfälle bis ins kleinste Detail zu beschreiben. Sie erhalten ein wertvolles Rüstzeug, mit dem Sie gut vorbereitet in Ihre ersten Terraform-Projekte gehen können.
Aufgrund der Fortentwicklung von Terraform können Unterschiede im Funktionsumfang zwischen der im Buch beschriebenen Terraform-Version und der bei Erscheinen dieses Buchs aktuellen Version nicht vermieden werden. Im Zweifelsfall gilt die...
Erscheint lt. Verlag | 5.4.2023 |
---|---|
Zusatzinfo | Illustrationen |
Verlagsort | Bonn |
Sprache | deutsch |
Themenwelt | Mathematik / Informatik ► Informatik ► Netzwerke |
Mathematik / Informatik ► Informatik ► Software Entwicklung | |
ISBN-10 | 3-8362-8915-6 / 3836289156 |
ISBN-13 | 978-3-8362-8915-3 / 9783836289153 |
Informationen gemäß Produktsicherheitsverordnung (GPSR) | |
Haben Sie eine Frage zum Produkt? |
Größe: 3,3 MB
DRM: Digitales Wasserzeichen
Dieses eBook enthält ein digitales Wasserzeichen und ist damit für Sie personalisiert. Bei einer missbräuchlichen Weitergabe des eBooks an Dritte ist eine Rückverfolgung an die Quelle möglich.
Dateiformat: EPUB (Electronic Publication)
EPUB ist ein offener Standard für eBooks und eignet sich besonders zur Darstellung von Belletristik und Sachbüchern. Der Fließtext wird dynamisch an die Display- und Schriftgröße angepasst. Auch für mobile Lesegeräte ist EPUB daher gut geeignet.
Systemvoraussetzungen:
PC/Mac: Mit einem PC oder Mac können Sie dieses eBook lesen. Sie benötigen dafür die kostenlose Software Adobe Digital Editions.
eReader: Dieses eBook kann mit (fast) allen eBook-Readern gelesen werden. Mit dem amazon-Kindle ist es aber nicht kompatibel.
Smartphone/Tablet: Egal ob Apple oder Android, dieses eBook können Sie lesen. Sie benötigen dafür eine kostenlose App.
Geräteliste und zusätzliche Hinweise
Buying eBooks from abroad
For tax law reasons we can sell eBooks just within Germany and Switzerland. Regrettably we cannot fulfill eBook-orders from other countries.
aus dem Bereich