Miesen | Miesen, A: Ansible | Buch | 978-3-8362-7660-3 | sack.de

Buch, Deutsch, 395 Seiten, Format (B × H): 180 mm x 240 mm, Gewicht: 861 g

Reihe: Rheinwerk Computing

Miesen

Miesen, A: Ansible

Buch, Deutsch, 395 Seiten, Format (B × H): 180 mm x 240 mm, Gewicht: 861 g

Reihe: Rheinwerk Computing

ISBN: 978-3-8362-7660-3
Verlag: Rheinwerk Verlag GmbH


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
Miesen Miesen, A: Ansible jetzt bestellen!

Autoren/Hrsg.


Weitere Infos & Material


Materialien zum Buch ... 15


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


Miesen, Axel
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.

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


Ihre Fragen, Wünsche oder Anmerkungen
Vorname*
Nachname*
Ihre E-Mail-Adresse*
Kundennr.
Ihre Nachricht*
Lediglich mit * gekennzeichnete Felder sind Pflichtfelder.
Wenn Sie die im Kontaktformular eingegebenen Daten durch Klick auf den nachfolgenden Button übersenden, erklären Sie sich damit einverstanden, dass wir Ihr Angaben für die Beantwortung Ihrer Anfrage verwenden. Selbstverständlich werden Ihre Daten vertraulich behandelt und nicht an Dritte weitergegeben. Sie können der Verwendung Ihrer Daten jederzeit widersprechen. Das Datenhandling bei Sack Fachmedien erklären wir Ihnen in unserer Datenschutzerklärung.