Ansible
Das Praxisbuch für Administratoren und DevOps-Teams. Alle Beispielprojekte zum Download
Ansible
Das Praxisbuch für Administratoren und DevOps-Teams. Alle Beispielprojekte zum Download
- Gebundenes Buch
- Merkliste
- Auf die Merkliste
- Bewerten Bewerten
- Teilen
- Produkt teilen
- Produkterinnerung
- Produkterinnerung
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 ManagementAd-hoc-Kommandos und PatternsYAML: Die Konfigurations- und SerialisierungssprachePlaybooks, Tasks und PlaysModularisierung mit Rollen und…mehr
Aus dem Inhalt:
Basiseinrichtung und Inventory ManagementAd-hoc-Kommandos und PatternsYAML: Die Konfigurations- und SerialisierungssprachePlaybooks, Tasks und PlaysModularisierung mit Rollen und IncludesDie Modul-BibliothekWebinterfaces: Ansible AWX/Tower und mehrAnsible und DockerCallback PluginsBeispielkonfigurationen und Best Practices
- Produktdetails
- Rheinwerk Computing
- Verlag: Rheinwerk Verlag
- Artikelnr. des Verlages: 459/07660
- Seitenzahl: 395
- Erscheinungstermin: 25. September 2020
- Deutsch
- Abmessung: 25mm x 180mm x 248mm
- Gewicht: 861g
- ISBN-13: 9783836276603
- Artikelnr.: 59485549
- Rheinwerk Computing
- Verlag: Rheinwerk Verlag
- Artikelnr. des Verlages: 459/07660
- Seitenzahl: 395
- Erscheinungstermin: 25. September 2020
- Deutsch
- Abmessung: 25mm x 180mm x 248mm
- Gewicht: 861g
- ISBN-13: 9783836276603
- Artikelnr.: 59485549
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 ... Setup/Laborumgebung ... 26
1.4 ... Ansible-Installation auf dem Control Host ... 31
1.5 ... Authentifizierung und Autorisierung auf den Target Hosts ... 34
1.6 ... Einrichten der SSH-Public-Key-Authentifizierung ... 36
1.7 ... Ein Ad-hoc-Test ohne jegliche Konfiguration ... 37
1.8 ... 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-Aliase ... 46
2.5 ... Jenseits von Ping ... 46
2.6 ... Alternative Inventorys ... 50
3. Ad-hoc-Kommandos und Patterns ... 53
3.1 ... Ad-hoc-Kommandos ... 53
3.2 ... Use cases ... 55
3.3 ... Idempotenz ... 56
3.4 ... Interne Funktionsweise ... 57
3.5 ... Die Ansible-Konsole ... 61
3.6 ... Patterns zum Adressieren von Hosts ... 62
4. Die Konfigurations- und Serialisierungssprache YAML ... 63
4.1 ... Syntax und Struktur ... 63
4.2 ... YAML-Files editieren ... 63
4.3 ... Listen und Maps ... 66
4.4 ... Verschachtelte Strukturen ... 66
4.5 ... Block-Ausdrücke ... 68
4.6 ... Das Nichts in YAML ... 69
4.7 ... Anchors und References ... 69
5. Playbooks und Tasks: die Grundlagen ... 71
5.1 ... Hallo Ansible -- das allererste Playbook ... 71
5.2 ... Formulierung von Tasks ... 74
5.3 ... Beenden von Plays ... 76
5.4 ... Der problematische Doppelpunkt ... 77
5.5 ... Kommandoaufrufe mit den Modulen »command« und »shell« ... 78
5.6 ... Fehler und Retry-Files ... 81
5.7 ... Tags ... 84
5.8 ... Das Kommando »ansible-playbook« ... 85
5.9 ... Eine exemplarische Apache-Installation ... 86
5.10 ... Handler: Tasks nur bei Changes durchführen ... 91
6. Playbooks und Tasks: fortgeschrittene Methoden ... 97
6.1 ... Variablen ... 97
6.2 ... Facts und implizite Variablen ... 106
6.3 ... Bedingte Ausführung mit »when« ... 111
6.4 ... Systemunterschiede ausgleichen -- wie denn jetzt? ... 113
6.5 ... Jinja und Templates ... 120
6.6 ... Schleifen ... 127
6.7 ... Fehlerbehandlung mit »failed_when« und »ignore_errors« ... 137
6.8 ... Blocks (und noch mal Fehlerbehandlung) ... 138
6.9 ... Asynchrone Ausführung ... 140
6.10 ... Lokale Tasks ... 141
6.11 ... Lookup-Plugins ... 143
6.12 ... Umgebungsvariablen setzen ... 145
7. Inventory-Management: fortgeschrittene Methoden ... 147
7.1 ... Das Kommando »ansible-inventory« ... 147
7.2 ... Verschachtelte Gruppen ... 148
7.3 ... »On-the-fly«-Inventorys erstellen mit »add_host« ... 149
7.4 ... Dynamische Gruppen mit »group_by« ... 151
7.5 ... Dynamische bzw. externe Inventorys ... 153
7.6 ... Inventory-Verzeichnisse ... 165
8. Modularisierung mit Rollen und Includes ... 167
8.1 ... Erstellung und Verwendung von Rollen ... 167
8.2 ... Ansible Galaxy ... 173
8.3 ... Verwendung von Imports/Includes ... 174
8.4 ... Noch mal Apache ... 175
8.5 ... Dokumentation ... 179
9. Die Modul-Bibliothek ... 185
9.1 ... Module zur Kommandoausführung ... 185
9.2 ... Module zur Paketverwaltung ... 187
9.3 ... Module zur Verwaltung von Dateien und Dateiinhalten ... 188
9.4 ... Module für weitere typische Verwaltungsaufgaben ... 193
9.5 ... Module zur Interaktion mit Netzwerk-Services ... 195
9.6 ... Spezialmodule (Kontrollflusssteuerung etc.) ... 196
10. Webinterfaces ... 201
10.1 ... Vorbereitungen zum Betrieb ... 201
10.2 ... Ansible Configuration Management Database (ansible-cmdb) ... 203
10.3 ... Voraussetzungen für anspruchsvollere Anwendungen ... 205
10.4 ... Ansible Tower/AWX ... 210
10.5 ... Polemarch ... 213
10.6 ... Jenkins ... 215
10.7 ... Weitere, hier nicht näher betrachtete Möglichkeiten ... 218
10.8 ... Laborumgebung: nicht mehr benötigte Anwendungen beenden ... 218
11. Weitere Tools und Techniken ... 221
11.1 ... Die Ansible-Vault ... 221
11.2 ... Debugging und Troubleshooting ... 230
11.3 ... Untersuchen von Konfigurationseinstellungen ... 244
11.4 ... Playbooks beschleunigen mit Pipelining ... 244
11.5 ... Die sprechende Kuh ... 245
11.6 ... Ansible im Pull-Mode ... 246
12. Ansible als Orchestrierungswerkzeug ... 251
12.1 ... Administrierst du noch oder orchestrierst du schon? ... 251
12.2 ... Ausflug in die Cloud: Vorbereitungen ... 252
12.3 ... Erste Server in der Cloud ... 254
12.4 ... Die Abarbeitungsreihenfolge beeinflussen ... 256
12.5 ... Delegierung ... 264
12.6 ... Ein komplexeres Beispiel ... 267
12.7 ... Löschen von Workern ... 274
12.8 ... Rolling-Updates ... 275
13. Ansible und Docker ... 277
13.1 ... Installation von Docker ... 277
13.2 ... Docker-Module ... 279
13.3 ... Eine Beispielanwendung ... 286
13.4 ... Ansible und Docker Compose ... 290
13.5 ... Erstellen von Images ... 295
14. Windows-Hosts verwalten ... 303
14.1 ... WinRM ... 303
14.2 ... Vorbereitungen auf dem Control Host ... 304
14.3 ... Voraussetzungen auf der Windows-Seite und WinRM-Setup ... 305
14.4 ... Setup mit Active Directory/Kerberos ... 306
14.5 ... WinRM-Troubleshooting ... 308
14.6 ... Windows-Module ... 309
15. Kochrezepte, Howtos und Best Practices ... 313
15.1 ... Eine empfehlenswerte »ansible.cfg« ... 313
15.2 ... Suche in einer Liste von Maps ... 314
15.3 ... Erweiterung von Maps oder Listen während der Laufzeit ... 315
15.4 ... Zufallspasswörter generieren ... 316
15.5 ... Einfache Installer bauen ... 318
15.6 ... IP-Adresse eines Target Hosts bestimmen ... 320
15.7 ... firewalld managen (falls vorhanden) ... 323
15.8 ... Linux-Software-Updates einspielen ... 324
15.9 ... Ansible über einen Gateway- bzw. Jumphost ... 327
15.10 ... Host-spezifische Ressourcen verwalten ... 328
16. Eigene Module erstellen ... 331
16.1 ... Erste Schritte ... 331
16.2 ... Modul-Parameter ... 334
16.3 ... Module in Python ... 337
17. Callback-Plugins ... 345
17.1 ... Stdout-Plugins ... 345
17.2 ... Sonstige Plugins ... 351
17.3 ... Entwickeln eigener Callback-Plugins ... 353
18. Was könnte noch besser sein, bzw. was fehlt noch? ... 357
18.1 ... Lang laufende Tasks verfolgen ... 357
18.2 ... Abarbeitung einer Rolle beenden ... 358
18.3 ... Schleifen über Blöcke ... 360
18.4 ... Locking bei konkurrierenden Playbook-Aufrufen ... 361
18.5 ... Fazit ... 363
Anhang ... 365
A ... SSH (Secure Shell) ... 367
B ... Reguläre Ausdrücke ... 383
Index ... 391
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 ... Setup/Laborumgebung ... 26
1.4 ... Ansible-Installation auf dem Control Host ... 31
1.5 ... Authentifizierung und Autorisierung auf den Target Hosts ... 34
1.6 ... Einrichten der SSH-Public-Key-Authentifizierung ... 36
1.7 ... Ein Ad-hoc-Test ohne jegliche Konfiguration ... 37
1.8 ... 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-Aliase ... 46
2.5 ... Jenseits von Ping ... 46
2.6 ... Alternative Inventorys ... 50
3. Ad-hoc-Kommandos und Patterns ... 53
3.1 ... Ad-hoc-Kommandos ... 53
3.2 ... Use cases ... 55
3.3 ... Idempotenz ... 56
3.4 ... Interne Funktionsweise ... 57
3.5 ... Die Ansible-Konsole ... 61
3.6 ... Patterns zum Adressieren von Hosts ... 62
4. Die Konfigurations- und Serialisierungssprache YAML ... 63
4.1 ... Syntax und Struktur ... 63
4.2 ... YAML-Files editieren ... 63
4.3 ... Listen und Maps ... 66
4.4 ... Verschachtelte Strukturen ... 66
4.5 ... Block-Ausdrücke ... 68
4.6 ... Das Nichts in YAML ... 69
4.7 ... Anchors und References ... 69
5. Playbooks und Tasks: die Grundlagen ... 71
5.1 ... Hallo Ansible -- das allererste Playbook ... 71
5.2 ... Formulierung von Tasks ... 74
5.3 ... Beenden von Plays ... 76
5.4 ... Der problematische Doppelpunkt ... 77
5.5 ... Kommandoaufrufe mit den Modulen »command« und »shell« ... 78
5.6 ... Fehler und Retry-Files ... 81
5.7 ... Tags ... 84
5.8 ... Das Kommando »ansible-playbook« ... 85
5.9 ... Eine exemplarische Apache-Installation ... 86
5.10 ... Handler: Tasks nur bei Changes durchführen ... 91
6. Playbooks und Tasks: fortgeschrittene Methoden ... 97
6.1 ... Variablen ... 97
6.2 ... Facts und implizite Variablen ... 106
6.3 ... Bedingte Ausführung mit »when« ... 111
6.4 ... Systemunterschiede ausgleichen -- wie denn jetzt? ... 113
6.5 ... Jinja und Templates ... 120
6.6 ... Schleifen ... 127
6.7 ... Fehlerbehandlung mit »failed_when« und »ignore_errors« ... 137
6.8 ... Blocks (und noch mal Fehlerbehandlung) ... 138
6.9 ... Asynchrone Ausführung ... 140
6.10 ... Lokale Tasks ... 141
6.11 ... Lookup-Plugins ... 143
6.12 ... Umgebungsvariablen setzen ... 145
7. Inventory-Management: fortgeschrittene Methoden ... 147
7.1 ... Das Kommando »ansible-inventory« ... 147
7.2 ... Verschachtelte Gruppen ... 148
7.3 ... »On-the-fly«-Inventorys erstellen mit »add_host« ... 149
7.4 ... Dynamische Gruppen mit »group_by« ... 151
7.5 ... Dynamische bzw. externe Inventorys ... 153
7.6 ... Inventory-Verzeichnisse ... 165
8. Modularisierung mit Rollen und Includes ... 167
8.1 ... Erstellung und Verwendung von Rollen ... 167
8.2 ... Ansible Galaxy ... 173
8.3 ... Verwendung von Imports/Includes ... 174
8.4 ... Noch mal Apache ... 175
8.5 ... Dokumentation ... 179
9. Die Modul-Bibliothek ... 185
9.1 ... Module zur Kommandoausführung ... 185
9.2 ... Module zur Paketverwaltung ... 187
9.3 ... Module zur Verwaltung von Dateien und Dateiinhalten ... 188
9.4 ... Module für weitere typische Verwaltungsaufgaben ... 193
9.5 ... Module zur Interaktion mit Netzwerk-Services ... 195
9.6 ... Spezialmodule (Kontrollflusssteuerung etc.) ... 196
10. Webinterfaces ... 201
10.1 ... Vorbereitungen zum Betrieb ... 201
10.2 ... Ansible Configuration Management Database (ansible-cmdb) ... 203
10.3 ... Voraussetzungen für anspruchsvollere Anwendungen ... 205
10.4 ... Ansible Tower/AWX ... 210
10.5 ... Polemarch ... 213
10.6 ... Jenkins ... 215
10.7 ... Weitere, hier nicht näher betrachtete Möglichkeiten ... 218
10.8 ... Laborumgebung: nicht mehr benötigte Anwendungen beenden ... 218
11. Weitere Tools und Techniken ... 221
11.1 ... Die Ansible-Vault ... 221
11.2 ... Debugging und Troubleshooting ... 230
11.3 ... Untersuchen von Konfigurationseinstellungen ... 244
11.4 ... Playbooks beschleunigen mit Pipelining ... 244
11.5 ... Die sprechende Kuh ... 245
11.6 ... Ansible im Pull-Mode ... 246
12. Ansible als Orchestrierungswerkzeug ... 251
12.1 ... Administrierst du noch oder orchestrierst du schon? ... 251
12.2 ... Ausflug in die Cloud: Vorbereitungen ... 252
12.3 ... Erste Server in der Cloud ... 254
12.4 ... Die Abarbeitungsreihenfolge beeinflussen ... 256
12.5 ... Delegierung ... 264
12.6 ... Ein komplexeres Beispiel ... 267
12.7 ... Löschen von Workern ... 274
12.8 ... Rolling-Updates ... 275
13. Ansible und Docker ... 277
13.1 ... Installation von Docker ... 277
13.2 ... Docker-Module ... 279
13.3 ... Eine Beispielanwendung ... 286
13.4 ... Ansible und Docker Compose ... 290
13.5 ... Erstellen von Images ... 295
14. Windows-Hosts verwalten ... 303
14.1 ... WinRM ... 303
14.2 ... Vorbereitungen auf dem Control Host ... 304
14.3 ... Voraussetzungen auf der Windows-Seite und WinRM-Setup ... 305
14.4 ... Setup mit Active Directory/Kerberos ... 306
14.5 ... WinRM-Troubleshooting ... 308
14.6 ... Windows-Module ... 309
15. Kochrezepte, Howtos und Best Practices ... 313
15.1 ... Eine empfehlenswerte »ansible.cfg« ... 313
15.2 ... Suche in einer Liste von Maps ... 314
15.3 ... Erweiterung von Maps oder Listen während der Laufzeit ... 315
15.4 ... Zufallspasswörter generieren ... 316
15.5 ... Einfache Installer bauen ... 318
15.6 ... IP-Adresse eines Target Hosts bestimmen ... 320
15.7 ... firewalld managen (falls vorhanden) ... 323
15.8 ... Linux-Software-Updates einspielen ... 324
15.9 ... Ansible über einen Gateway- bzw. Jumphost ... 327
15.10 ... Host-spezifische Ressourcen verwalten ... 328
16. Eigene Module erstellen ... 331
16.1 ... Erste Schritte ... 331
16.2 ... Modul-Parameter ... 334
16.3 ... Module in Python ... 337
17. Callback-Plugins ... 345
17.1 ... Stdout-Plugins ... 345
17.2 ... Sonstige Plugins ... 351
17.3 ... Entwickeln eigener Callback-Plugins ... 353
18. Was könnte noch besser sein, bzw. was fehlt noch? ... 357
18.1 ... Lang laufende Tasks verfolgen ... 357
18.2 ... Abarbeitung einer Rolle beenden ... 358
18.3 ... Schleifen über Blöcke ... 360
18.4 ... Locking bei konkurrierenden Playbook-Aufrufen ... 361
18.5 ... Fazit ... 363
Anhang ... 365
A ... SSH (Secure Shell) ... 367
B ... Reguläre Ausdrücke ... 383
Index ... 391