Files
ansible_pr-sentation/README.md
T
2026-09-14 13:10:02 +02:00

4.7 KiB

Ansible-Präsentation — Übersicht

Moderne Präsentation über Ansible mit begleitendem Handout und einem lauffähigen Beispiel-Projekt. Alles in Python generiert und reproduzierbar.


Inhalt des Ordners

ansible_präsentation/
├── ansible_praesentation.pptx   # Die fertige Präsentation (21 Folien, 16:9)
├── create_presentation.py       # Python-Skript, das die .pptx erzeugt
├── handout.md                   # Handout (Markdown-Quelle)
├── handout.docx                 # Handout (druckbar/editierbar, für OnlyOffice)
├── assets/
│   ├── ansible_mark_red.png     # Ansible-Logo (rot) — Quelle: Wikimedia Commons
│   ├── ansible_mark_white.png   # Ansible-Logo (weiß)
│   ├── ansible_logo.svg         # Logo-Quelldatei (SVG)
│   └── architektur.png          # Architektur-Diagramm (automatisch erzeugt)
└── Beispiel/                    # Lauffähiges Beispiel-Playbook (siehe unten)

1. Die Präsentation (ansible_praesentation.pptx)

21 Folien, 16:9, in den Ansible-Brandfarben (Rot #EE0000, Anthrazit #1A1918).

# Titel Inhalt
1 Titel Agenda, Ansible-Logo
2 Was ist Ansible? Definition, Merkmale (agentenlos, idempotent, …)
3 Architektur Control Node, Managed Nodes (Diagramm)
4 Vier Kernkonzepte Playbooks, Inventory, Module, Rollen
5 ansible.cfg Konfiguration, Suchreihenfolge (wer gewinnt)
6 ansible.cfg Parameter Wichtige Werte in [defaults], [privilege_escalation], [ssh_connection]
7 YAML-Syntax Grundregeln + Inventory-Beispiel
8 Playbook site.yml mit Tasks & FQCN
9 Module 6 Modul-Kategorien
10 Ad-hoc-Befehle ansible-CLI ohne Playbook
11 Jinja2 {{ variable }}, Filter, .j2-Templates
12 Gather Facts Facts auslesen, Custom Facts, gather_facts
13 Variablen & Präzedenz Quellen + Reihenfolge (wer gewinnt)
14 FQCN (Definition) namespace.collection.modul
15 FQCN (Praxis) Beispiele + Warum
16 Collections Was sie sind (6 Bestandteile)
17 Collections nutzen Galaxy, Installation, Struktur
18 Rollen (Konzept) Wiederverwendbarkeit, Kapselung
19 Rollen (Struktur) roles/webserver/ Verzeichnisbaum
20 Praxisbeispiel Playbook mit Rolle + Variablen
21 Zusammenfassung Key-Takeaways + Quellen

Design-Hinweis: Die Präsentation nutzt die Schriftarten Carlito (Body) und DejaVu Sans Mono (Code), da Calibri/Consolas auf Linux oft fehlen und OnlyOffice sonst substituiert (was zu gebrochenen Sonderzeichen führt).


2. Skript neu ausführen (create_presentation.py)

Das Skript erzeugt die .pptx vollständig reproduzierbar.

Voraussetzungen:

pip install python-pptx matplotlib Pillow

Ausführen:

python3 create_presentation.py

Das Skript:

  • erzeugt das Architektur-Diagramm (assets/architektur.png) selbst per matplotlib,
  • nutzt die Logo-PNGs aus assets/ (Quelle: Wikimedia Commons),
  • setzt die Folien aus Python-Code zusammen (jede Folie ist eine Funktion/Sektion).

3. Das Handout (handout.md / handout.docx)

Kompakte Referenz mit:

  1. YAML-Grundsyntax
  2. Ad-hoc-Befehle
  3. Jinja2 (Variablen auflösen, Filter, .j2)
  4. Gather Facts
  5. Wo Variablen definiert werden
  6. Variablen-Präzedenz (Auflösungs-Reihenfolge)
  7. Module & FQCN
  8. ansible.cfg (Suchreihenfolge + Parameter)
  9. Vollständiges Beispiel

Das .docx wird aus dem .md per pandoc erzeugt:

pandoc handout.md -o handout.docx

4. Das Beispiel-Projekt (Beispiel/)

Ein vollständiges, lauffähiges Ansible-Projekt, das Rollen-Struktur, Variablen-Präzedenz und Templating für localhost demonstriert.

Siehe Beispiel/README.md für Details. Kurz:

cd Beispiel
ansible-playbook site.yml --check   # Trockenlauf
ansible-playbook site.yml           # echt ausführen

Die Struktur zeigt:

  • roles/webserver/ mit tasks, handlers, templates, defaults, vars, meta
  • Variablen-Präzedenz: defaults (80) → host_vars (8080) → -e (gewinnt)
  • Jinja2-Templates (nginx.conf.j2, index.html.j2 mit Schleife + Filter)
  • Facts (ansible_distribution, ansible_hostname, …)
  • FQCN (ansible.builtin.*)
  • connection: local — läuft direkt auf dem Rechner, kein SSH (localhost ist kein echter Host)

Hinweis: Das Beispiel nutzt apt (Debian/Ubuntu). Auf Manjaro/Arch verwendet man stattdessen community.general.pacman (Anpassung in Beispiel/README.md beschrieben).


Quellen & Lizenz