Zum Hauptinhalt springen
Dekorationsartikel gehören nicht zum Leistungsumfang.
Ansible
Das Praxisbuch für Admins und DevOps-Teams
Buch von Axel Miesen
Sprache: Deutsch

39,90 €*

inkl. MwSt.

Versandkostenfrei per Post / DHL

auf Lager, Lieferzeit 1-2 Werktage

Kategorien:
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.«

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

Über den Autor
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.
Zusammenfassung
Best Practices zur Konfigurationsverwaltung, Docker-Integration, Modularisierung und Inventarisierung
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 ('[...]') ... 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 '[...]' ... 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) ......
Details
Erscheinungsjahr: 2022
Fachbereich: Datenkommunikation, Netze & Mailboxen
Genre: Informatik
Rubrik: Naturwissenschaften & Technik
Medium: Buch
Reihe: Rheinwerk Computing
Inhalt: 442 S.
ISBN-13: 9783836289061
ISBN-10: 3836289067
Sprache: Deutsch
Herstellernummer: 459/08906
Einband: Gebunden
Autor: Miesen, Axel
Auflage: 2. Auflage
Hersteller: Rheinwerk Verlag GmbH
Maße: 245 x 175 x 32 mm
Von/Mit: Axel Miesen
Erscheinungsdatum: 05.05.2022
Gewicht: 0,948 kg
Artikel-ID: 121195787
Über den Autor
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.
Zusammenfassung
Best Practices zur Konfigurationsverwaltung, Docker-Integration, Modularisierung und Inventarisierung
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 ('[...]') ... 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 '[...]' ... 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) ......
Details
Erscheinungsjahr: 2022
Fachbereich: Datenkommunikation, Netze & Mailboxen
Genre: Informatik
Rubrik: Naturwissenschaften & Technik
Medium: Buch
Reihe: Rheinwerk Computing
Inhalt: 442 S.
ISBN-13: 9783836289061
ISBN-10: 3836289067
Sprache: Deutsch
Herstellernummer: 459/08906
Einband: Gebunden
Autor: Miesen, Axel
Auflage: 2. Auflage
Hersteller: Rheinwerk Verlag GmbH
Maße: 245 x 175 x 32 mm
Von/Mit: Axel Miesen
Erscheinungsdatum: 05.05.2022
Gewicht: 0,948 kg
Artikel-ID: 121195787
Warnhinweis

Ähnliche Produkte

Ähnliche Produkte