Ansible

Inhaltsverzeichnis



  Vorwort ... 17

  Über dieses Buch ... 19

  1.  Einführung und Installation ... 23

       1.1 ... Was ist Ansible? ... 23

       1.2 ... Was ist Ansible nicht? ... 25

       1.3 ... Geschichte und Versionen ... 26

       1.4 ... Setup/Laborumgebung ... 27

       1.5 ... Ansible-Installation auf dem Control Host ... 31

       1.6 ... Authentifizierung und Autorisierung auf den Target Hosts ... 35

       1.7 ... Einrichten der SSH-Public-Key-Authentifizierung ... 36

       1.8 ... Ein Ad-hoc-Test ohne jegliche Konfiguration ... 37

       1.9 ... Noch ein Hinweis zur Migration von älteren Versionen ... 39

  2.  Basiseinrichtung und erstes Inventory-Management ... 41

       2.1 ... Verzeichnisstruktur einrichten ... 41

       2.2 ... Grundkonfiguration (»ansible.cfg«) ... 42

       2.3 ... Erstellen und Verwalten eines statischen Inventorys ... 43

       2.4 ... Inventory-Aliasse und Namensbereiche ... 46

       2.5 ... Jenseits von Ping ... 47

       2.6 ... Ein etwas komplexeres Beispiel ... 50

       2.7 ... Alternative bzw. mehrere Inventorys ... 51

  3.  Ad-hoc-Kommandos und Patterns ... 55

       3.1 ... Ad-hoc-Kommandos ... 55

       3.2 ... Use Cases jenseits von »command« und »shell« ... 57

       3.3 ... Idempotenz ... 57

       3.4 ... Interne Funktionsweise ... 59

       3.5 ... Die Ansible-Konsole ... 62

       3.6 ... Patterns zum Adressieren von Hosts ... 63

  4.  Die Konfigurations- und Serialisierungssprache YAML ... 65

       4.1 ... Syntax und Struktur ... 65

       4.2 ... YAML-Files editieren ... 66

       4.3 ... Listen und Maps ... 68

       4.4 ... Verschachtelte Strukturen ... 69

       4.5 ... Textpassagen und Block-Ausdrücke ... 70

       4.6 ... Das Nichts in YAML ... 71

       4.7 ... Anchors und References ... 72

  5.  Playbooks und Tasks: die Grundlagen ... 73

       5.1 ... Hallo Ansible -- das allererste Playbook ... 73

       5.2 ... Formulierung von Tasks ... 77

       5.3 ... Beenden von Plays ... 79

       5.4 ... Der problematische Doppelpunkt ... 79

       5.5 ... Fehlerbehandlung, Retry-Files ... 80

       5.6 ... Tags ... 82

       5.7 ... Das Kommando »ansible-playbook« ... 83

       5.8 ... Eine exemplarische Apache-Installation ... 85

       5.9 ... Handler: Tasks nur bei Changes durchführen ... 89

  6.  Playbooks und Tasks: fortgeschrittene Methoden ... 95

       6.1 ... Variablen ... 95

       6.2 ... Registrierte Variablen ... 104

       6.3 ... Facts und implizite Variablen ... 108

       6.4 ... Bedingte Ausführung mit »when« ... 114

       6.5 ... Systemunterschiede ausgleichen -- wie denn jetzt? ... 115

       6.6 ... Jinja und Templates ... 123

       6.7 ... Variablentests ... 130

       6.8 ... Schleifen ... 132

       6.9 ... Fehlerbehandlung mit »failed_when« und »ignore_errors« ... 143

       6.10 ... Blocks (und noch mal Fehlerbehandlung) ... 144

       6.11 ... Asynchrone Ausführung ... 146

       6.12 ... Lokale Tasks ... 148

       6.13 ... Lookup-Plugins ... 150

       6.14 ... Umgebungsvariablen setzen ... 152

  7.  Module und Collections verwenden ... 155

       7.1 ... Collections ... 155

       7.2 ... Module ... 159

       7.3 ... Module zur Kommandoausführung ... 160

       7.4 ... Module zur Paketverwaltung ... 161

       7.5 ... Module zur Verwaltung von Dateien und Dateiinhalten ... 163

       7.6 ... Module für weitere typische Verwaltungsaufgaben ... 168

       7.7 ... Module zur Interaktion mit Netzwerk-Services ... 170

       7.8 ... Spezialmodule (Kontrollflusssteuerung etc.) ... 171

  8.  Modularisierung mit Rollen und Includes ... 175

       8.1 ... Erstellung und Verwendung von Rollen ... 175

       8.2 ... Das Online-Repository Ansible Galaxy ... 182

       8.3 ... Verwendung von Imports/Includes ... 182

       8.4 ... Noch mal Apache ... 186

       8.5 ... Dokumentation ... 190

       8.6 ... Wiederverwendung von Rollen ... 194

  9.  Webinterfaces ... 199

       9.1 ... Vorbereitungen zum Betrieb ... 199

       9.2 ... Ansible Configuration Management Database (ansible-cmdb) ... 202

       9.3 ... Traefik und Gitea ... 204

       9.4 ... Ansible AWX ... 210

       9.5 ... Polemarch ... 214

       9.6 ... Jenkins ... 216

       9.7 ... ARA ... 219

       9.8 ... Weitere, hier nicht näher betrachtete Möglichkeiten ... 220

       9.9 ... Laborumgebung: nicht mehr benötigte Anwendungen beenden ... 221

10.  Weitere Tools und Techniken ... 223

       10.1 ... Ansible Vault ... 223

       10.2 ... Debugging und Troubleshooting ... 233

       10.3 ... Untersuchen von Konfigurationseinstellungen ... 247

       10.4 ... Playbooks beschleunigen mit Pipelining ... 247

       10.5 ... Die sprechende Kuh ... 248

       10.6 ... Ansible im Pull-Mode ... 249

11.  Ansible und Docker ... 255

       11.1 ... Installation von Docker ... 255

       11.2 ... Docker-Module ... 257

       11.3 ... Eine Beispielanwendung ... 264

       11.4 ... Ansible und Docker Compose ... 268

       11.5 ... Das »docker«-Connection-Plugin ... 272

       11.6 ... Erstellen von Images ... 273

12.  Inventory-Management: fortgeschrittene Methoden ... 281

       12.1 ... Das Kommando »ansible-inventory« ... 281

       12.2 ... Verschachtelte Gruppen ... 282

       12.3 ... »On the fly«-Inventorys erstellen mit »add_host« ... 283

       12.4 ... Dynamische Gruppen mit »group_by« ... 284

       12.5 ... Dynamische bzw. externe Inventorys ... 287

13.  Ansible und die Cloud ... 293

       13.1 ... Hetzner Cloud ... 294

       13.2 ... AWS EC2 ... 299

14.  Ansible als Orchestrierungswerkzeug ... 307

       14.1 ... Administrierst du noch oder orchestrierst du schon? ... 307

       14.2 ... Viele Target Hosts zum Testen ... 308

       14.3 ... Die Abarbeitungsreihenfolge beeinflussen ... 310

       14.4 ... Delegierung ... 318

15.  Ansible und Windows ... 323

       15.1 ... Ein Control Host auf Windows-Basis ... 323

       15.2 ... WinRM ... 327

       15.3 ... Vorbereitungen auf dem Control Host ... 328

       15.4 ... Voraussetzungen auf der Windows-Seite und WinRM-Setup ... 329

       15.5 ... Setup mit Active Directory/Kerberos ... 330

       15.6 ... WinRM-Troubleshooting ... 332

       15.7 ... Windows-Module ... 333

16.  Callback-Plugins ... 337

       16.1 ... Ausgabe-Plugins ... 337

       16.2 ... Sonstige Callback-Plugins ... 343

17.  Eigene Collections und Module erstellen ... 345

       17.1 ... Namespaces, Namen und Einrichtung eines Collection-Projektes ... 345

       17.2 ... Playbooks in Collections ... 347

       17.3 ... Rollen in Collections ... 348

       17.4 ... Module in Collections ... 349

       17.5 ... Plugins in Collections ... 362

       17.6 ... Collections deponieren und installieren ... 364

18.  Entwickeln und Testen mit Molecule ... 367

       18.1 ... Vorbereitungen und Einrichtung ... 367

       18.2 ... Erste Schritte ... 369

       18.3 ... Entwickeln ... 371

       18.4 ... Testen mit dem Ansible-Verifier ... 373

       18.5 ... Testen mit dem Testinfra-Verifier ... 375

       18.6 ... Der komplette Testzyklus ... 376

       18.7 ... Ausblick und Fazit ... 376

19.  Kochrezepte, Howtos und Best Practices ... 379

       19.1 ... Eine empfehlenswerte »ansible.cfg« ... 379

       19.2 ... Ein neues Projekt beginnen ... 380

       19.3 ... Einen Task in Abhängigkeit von einem vorhergehenden Task ausführen ... 380

       19.4 ... Einen Task ausführen, wenn der Host in einer bestimmten Gruppe ist ... 382

       19.5 ... In einer Liste von Maps suchen ... 382

       19.6 ... Erweiterung von Maps oder Listen während der Laufzeit ... 383

       19.7 ... Die Elemente einer Liste modifizieren und verbinden ... 385

       19.8 ... Passwörter und Passwort-Hashes generieren ... 386

       19.9 ... Einfache Installer bauen ... 387

       19.10 ... IP-Adresse eines Target Hosts bestimmen ... 389

       19.11 ... firewalld managen ... 392

       19.12 ... Linux-Software-Updates einspielen ... 394

       19.13 ... Ansible über einen Gateway- bzw. Jumphost ... 397

       19.14 ... Host-spezifische Ressourcen verwalten ... 397

20.  Was könnte noch besser sein bzw. was fehlt noch? ... 401

       20.1 ... Lange laufende Tasks verfolgen ... 401

       20.2 ... Abarbeitung einer Rolle beenden ... 402

       20.3 ... Schleifen über Blöcke ... 404

       20.4 ... Locking bei konkurrierenden Playbook-Aufrufen ... 405

       20.5 ... Fazit ... 406

  Anhang ... 407

       A ... Projektspezifische Umgebungsvariablen mit »direnv« ... 409

       B ... SSH (Secure Shell) ... 413

       C ... Reguläre Ausdrücke ... 429

  Index ... 437

Ansible

Das Praxisbuch für Admins und DevOps-Teams

Buch (Gebundene Ausgabe)

€41,10

inkl. gesetzl. MwSt.

Ansible

Ebenfalls verfügbar als:

Gebundenes Buch

Gebundenes Buch

ab € 41,10
eBook

eBook

ab € 39,90

Beschreibung

Wenn Sie auf Ihrer Serverfarm für Ordnung sorgen wollen, ist Ansible das Werkzeug der Wahl. Dieses Praxisbuch zeigt Ihnen, wie Sie das automatisierte Deployment Ihrer Dienste orchestrieren und so für standardisierte und dokumentierte Abläufe sorgen. Diese zentrale Konfiguration erleichtert Ihnen Betrieb und Skalierung, da Sie durch die konsequente Automatisierung Fehlerquellen reduzieren.

Aus dem Inhalt:

Basiseinrichtung und Inventory Management
Ad-hoc-Kommandos und Patterns
YAML: Die Konfigurations- und Serialisierungssprache
Playbooks, Tasks und Plays
Modularisierung mit Rollen und Includes
Die Modul-Bibliothek
Webinterfaces: Ansible AWX/Tower und mehr
Ansible und Docker
Callback Plugins
Beispielkonfigurationen und Best Practices

Die Fachpresse zur Vorauflage:

LINUX MAGAZIN: »Ein unverzichtbares Kompendium für alle, die sich in die Automatisierung mit Ansible einarbeiten wollen oder müssen.«

Axel Miesen ist zertifizierter Linux-Systemadministrator und Trainer. Seit 2001 hat er zahlreichen Schulungen zu Themen wie Linux-Shellscripting, Perl, Docker und Ansible durchgeführt.

Details

Einband

Gebundene Ausgabe

Erscheinungsdatum

05.05.2022

Verlag

Rheinwerk

Seitenzahl

442

Maße (L/B/H)

24,5/17,5/3,2 cm

Beschreibung

Details

Einband

Gebundene Ausgabe

Erscheinungsdatum

05.05.2022

Verlag

Rheinwerk

Seitenzahl

442

Maße (L/B/H)

24,5/17,5/3,2 cm

Gewicht

948 g

Auflage

2. Auflage

Reihe

Rheinwerk Computing

Sprache

Deutsch

ISBN

978-3-8362-8906-1

Das meinen unsere Kund*innen

0.0

0 Bewertungen

Informationen zu Bewertungen

Zur Abgabe einer Bewertung ist eine Anmeldung im Kund*innenkonto notwendig. Die Authentizität der Bewertungen wird von uns nicht überprüft. Wir behalten uns vor, Bewertungstexte, die unseren Richtlinien widersprechen, entsprechend zu kürzen oder zu löschen.

Verfassen Sie die erste Bewertung zu diesem Artikel

Helfen Sie anderen Kund*innen durch Ihre Meinung

Erste Bewertung verfassen

Unsere Kund*innen meinen

0.0

0 Bewertungen filtern

Weitere Artikel finden Sie in

Die Leseprobe wird geladen.
  • Ansible


  •   Vorwort ... 17

      Über dieses Buch ... 19

      1.  Einführung und Installation ... 23

           1.1 ... Was ist Ansible? ... 23

           1.2 ... Was ist Ansible nicht? ... 25

           1.3 ... Geschichte und Versionen ... 26

           1.4 ... Setup/Laborumgebung ... 27

           1.5 ... Ansible-Installation auf dem Control Host ... 31

           1.6 ... Authentifizierung und Autorisierung auf den Target Hosts ... 35

           1.7 ... Einrichten der SSH-Public-Key-Authentifizierung ... 36

           1.8 ... Ein Ad-hoc-Test ohne jegliche Konfiguration ... 37

           1.9 ... Noch ein Hinweis zur Migration von älteren Versionen ... 39

      2.  Basiseinrichtung und erstes Inventory-Management ... 41

           2.1 ... Verzeichnisstruktur einrichten ... 41

           2.2 ... Grundkonfiguration (»ansible.cfg«) ... 42

           2.3 ... Erstellen und Verwalten eines statischen Inventorys ... 43

           2.4 ... Inventory-Aliasse und Namensbereiche ... 46

           2.5 ... Jenseits von Ping ... 47

           2.6 ... Ein etwas komplexeres Beispiel ... 50

           2.7 ... Alternative bzw. mehrere Inventorys ... 51

      3.  Ad-hoc-Kommandos und Patterns ... 55

           3.1 ... Ad-hoc-Kommandos ... 55

           3.2 ... Use Cases jenseits von »command« und »shell« ... 57

           3.3 ... Idempotenz ... 57

           3.4 ... Interne Funktionsweise ... 59

           3.5 ... Die Ansible-Konsole ... 62

           3.6 ... Patterns zum Adressieren von Hosts ... 63

      4.  Die Konfigurations- und Serialisierungssprache YAML ... 65

           4.1 ... Syntax und Struktur ... 65

           4.2 ... YAML-Files editieren ... 66

           4.3 ... Listen und Maps ... 68

           4.4 ... Verschachtelte Strukturen ... 69

           4.5 ... Textpassagen und Block-Ausdrücke ... 70

           4.6 ... Das Nichts in YAML ... 71

           4.7 ... Anchors und References ... 72

      5.  Playbooks und Tasks: die Grundlagen ... 73

           5.1 ... Hallo Ansible -- das allererste Playbook ... 73

           5.2 ... Formulierung von Tasks ... 77

           5.3 ... Beenden von Plays ... 79

           5.4 ... Der problematische Doppelpunkt ... 79

           5.5 ... Fehlerbehandlung, Retry-Files ... 80

           5.6 ... Tags ... 82

           5.7 ... Das Kommando »ansible-playbook« ... 83

           5.8 ... Eine exemplarische Apache-Installation ... 85

           5.9 ... Handler: Tasks nur bei Changes durchführen ... 89

      6.  Playbooks und Tasks: fortgeschrittene Methoden ... 95

           6.1 ... Variablen ... 95

           6.2 ... Registrierte Variablen ... 104

           6.3 ... Facts und implizite Variablen ... 108

           6.4 ... Bedingte Ausführung mit »when« ... 114

           6.5 ... Systemunterschiede ausgleichen -- wie denn jetzt? ... 115

           6.6 ... Jinja und Templates ... 123

           6.7 ... Variablentests ... 130

           6.8 ... Schleifen ... 132

           6.9 ... Fehlerbehandlung mit »failed_when« und »ignore_errors« ... 143

           6.10 ... Blocks (und noch mal Fehlerbehandlung) ... 144

           6.11 ... Asynchrone Ausführung ... 146

           6.12 ... Lokale Tasks ... 148

           6.13 ... Lookup-Plugins ... 150

           6.14 ... Umgebungsvariablen setzen ... 152

      7.  Module und Collections verwenden ... 155

           7.1 ... Collections ... 155

           7.2 ... Module ... 159

           7.3 ... Module zur Kommandoausführung ... 160

           7.4 ... Module zur Paketverwaltung ... 161

           7.5 ... Module zur Verwaltung von Dateien und Dateiinhalten ... 163

           7.6 ... Module für weitere typische Verwaltungsaufgaben ... 168

           7.7 ... Module zur Interaktion mit Netzwerk-Services ... 170

           7.8 ... Spezialmodule (Kontrollflusssteuerung etc.) ... 171

      8.  Modularisierung mit Rollen und Includes ... 175

           8.1 ... Erstellung und Verwendung von Rollen ... 175

           8.2 ... Das Online-Repository Ansible Galaxy ... 182

           8.3 ... Verwendung von Imports/Includes ... 182

           8.4 ... Noch mal Apache ... 186

           8.5 ... Dokumentation ... 190

           8.6 ... Wiederverwendung von Rollen ... 194

      9.  Webinterfaces ... 199

           9.1 ... Vorbereitungen zum Betrieb ... 199

           9.2 ... Ansible Configuration Management Database (ansible-cmdb) ... 202

           9.3 ... Traefik und Gitea ... 204

           9.4 ... Ansible AWX ... 210

           9.5 ... Polemarch ... 214

           9.6 ... Jenkins ... 216

           9.7 ... ARA ... 219

           9.8 ... Weitere, hier nicht näher betrachtete Möglichkeiten ... 220

           9.9 ... Laborumgebung: nicht mehr benötigte Anwendungen beenden ... 221

    10.  Weitere Tools und Techniken ... 223

           10.1 ... Ansible Vault ... 223

           10.2 ... Debugging und Troubleshooting ... 233

           10.3 ... Untersuchen von Konfigurationseinstellungen ... 247

           10.4 ... Playbooks beschleunigen mit Pipelining ... 247

           10.5 ... Die sprechende Kuh ... 248

           10.6 ... Ansible im Pull-Mode ... 249

    11.  Ansible und Docker ... 255

           11.1 ... Installation von Docker ... 255

           11.2 ... Docker-Module ... 257

           11.3 ... Eine Beispielanwendung ... 264

           11.4 ... Ansible und Docker Compose ... 268

           11.5 ... Das »docker«-Connection-Plugin ... 272

           11.6 ... Erstellen von Images ... 273

    12.  Inventory-Management: fortgeschrittene Methoden ... 281

           12.1 ... Das Kommando »ansible-inventory« ... 281

           12.2 ... Verschachtelte Gruppen ... 282

           12.3 ... »On the fly«-Inventorys erstellen mit »add_host« ... 283

           12.4 ... Dynamische Gruppen mit »group_by« ... 284

           12.5 ... Dynamische bzw. externe Inventorys ... 287

    13.  Ansible und die Cloud ... 293

           13.1 ... Hetzner Cloud ... 294

           13.2 ... AWS EC2 ... 299

    14.  Ansible als Orchestrierungswerkzeug ... 307

           14.1 ... Administrierst du noch oder orchestrierst du schon? ... 307

           14.2 ... Viele Target Hosts zum Testen ... 308

           14.3 ... Die Abarbeitungsreihenfolge beeinflussen ... 310

           14.4 ... Delegierung ... 318

    15.  Ansible und Windows ... 323

           15.1 ... Ein Control Host auf Windows-Basis ... 323

           15.2 ... WinRM ... 327

           15.3 ... Vorbereitungen auf dem Control Host ... 328

           15.4 ... Voraussetzungen auf der Windows-Seite und WinRM-Setup ... 329

           15.5 ... Setup mit Active Directory/Kerberos ... 330

           15.6 ... WinRM-Troubleshooting ... 332

           15.7 ... Windows-Module ... 333

    16.  Callback-Plugins ... 337

           16.1 ... Ausgabe-Plugins ... 337

           16.2 ... Sonstige Callback-Plugins ... 343

    17.  Eigene Collections und Module erstellen ... 345

           17.1 ... Namespaces, Namen und Einrichtung eines Collection-Projektes ... 345

           17.2 ... Playbooks in Collections ... 347

           17.3 ... Rollen in Collections ... 348

           17.4 ... Module in Collections ... 349

           17.5 ... Plugins in Collections ... 362

           17.6 ... Collections deponieren und installieren ... 364

    18.  Entwickeln und Testen mit Molecule ... 367

           18.1 ... Vorbereitungen und Einrichtung ... 367

           18.2 ... Erste Schritte ... 369

           18.3 ... Entwickeln ... 371

           18.4 ... Testen mit dem Ansible-Verifier ... 373

           18.5 ... Testen mit dem Testinfra-Verifier ... 375

           18.6 ... Der komplette Testzyklus ... 376

           18.7 ... Ausblick und Fazit ... 376

    19.  Kochrezepte, Howtos und Best Practices ... 379

           19.1 ... Eine empfehlenswerte »ansible.cfg« ... 379

           19.2 ... Ein neues Projekt beginnen ... 380

           19.3 ... Einen Task in Abhängigkeit von einem vorhergehenden Task ausführen ... 380

           19.4 ... Einen Task ausführen, wenn der Host in einer bestimmten Gruppe ist ... 382

           19.5 ... In einer Liste von Maps suchen ... 382

           19.6 ... Erweiterung von Maps oder Listen während der Laufzeit ... 383

           19.7 ... Die Elemente einer Liste modifizieren und verbinden ... 385

           19.8 ... Passwörter und Passwort-Hashes generieren ... 386

           19.9 ... Einfache Installer bauen ... 387

           19.10 ... IP-Adresse eines Target Hosts bestimmen ... 389

           19.11 ... firewalld managen ... 392

           19.12 ... Linux-Software-Updates einspielen ... 394

           19.13 ... Ansible über einen Gateway- bzw. Jumphost ... 397

           19.14 ... Host-spezifische Ressourcen verwalten ... 397

    20.  Was könnte noch besser sein bzw. was fehlt noch? ... 401

           20.1 ... Lange laufende Tasks verfolgen ... 401

           20.2 ... Abarbeitung einer Rolle beenden ... 402

           20.3 ... Schleifen über Blöcke ... 404

           20.4 ... Locking bei konkurrierenden Playbook-Aufrufen ... 405

           20.5 ... Fazit ... 406

      Anhang ... 407

           A ... Projektspezifische Umgebungsvariablen mit »direnv« ... 409

           B ... SSH (Secure Shell) ... 413

           C ... Reguläre Ausdrücke ... 429

      Index ... 437