Einführung und Installation
- Was ist Ansible?
- Geschichte und Versionen
- Setup/Laborumgebung
- Ansible-Installation auf dem Control Host
- Authentifizierung und Autorisierung auf den Target Hosts
- Einrichten der SSH-Public-Key-Authentifizierung
Basiseinrichtung und erstes Inventory-Management
- Grundkonfiguration (ansible.cfg)
- Erstellen und Verwalten eines statischen Inventorys
- Inventory-Aliasse und Namensbereiche
- Alternative bzw. mehrere Inventorys
Ad-hoc-Kommandos und Patterns
- Ad-hoc-Kommandos
- Use Cases jenseits von command und shell
- Idempotenz
- Patterns zum Adressieren von Hosts
Die Konfigurations- und Serialisierungssprache YAML
- Syntax und Struktur
- YAML-Files editieren
- Listen und Maps
- Verschachtelte Strukturen
- Textpassagen und Block-Ausdrücke
Playbooks und Tasks: die Grundlagen
- Hallo Ansible – das allererste Playbook
- Formulierung von Tasks
- Fehlerbehandlung, Retry-Files
- Tags
- Das Kommando ansible-playbook
- Handler: Tasks nur bei Changes durchführen
Playbooks und Tasks: fortgeschrittene Methoden
- Variablen
- Facts und implizite Variablen
- Bedingte Ausführung mit when
- Jinja und Templates
- Schleifen
- Blocks
- Lokale Tasks
- Lookup-Plug-ins
Module und Collections verwenden
- Collections
- Module
- Module zur Kommandoausführung
- Module zur Paketverwaltung
- Module zur Verwaltung von Dateien und Dateiinhalten
- Module für weitere typische Verwaltungsaufgaben
- Module zur Interaktion mit Netzwerk-Services
- Spezialmodule (Kontrollflusssteuerung etc.)
Modularisierung mit Rollen und Includes
- Erstellung und Verwendung von Rollen
- Das Online-Repository Ansible Galaxy
- Verwendung von Imports/Includes
- Dokumentation
Ausblick auf Ansible-Webinterfaces
- Voraussetzungen zum Betrieb
- ansible-cmdb
- Ansible AWX
- Sonstige (Polemarch, Semaphore, ARA, …)
Weitere Tools und Techniken
- Ansible Vault
- Debugging und Troubleshooting
- Untersuchen von Konfigurationseinstellungen
- Playbooks beschleunigen mit Pipelining
- Die sprechende Kuh
Inventory-Management: fortgeschrittene Methoden
- Das Kommando ansible-inventory
- Verschachtelte Gruppen
- Dynamische Gruppen mit group_by
- Dynamische bzw. externe Inventorys
Kochrezepte und Best Practices