Das template-Modul und .j2-Dateien
Stellen Sie eine gerenderte Datei auf einem Host bereit.
Das template-Modul und .j2-Dateien ist eine kostenlose Ansible Academy-Lektion auf CoddyKit. Dies ist Lektion 1 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Ansible Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Ansible Academy-Kurs umfasst insgesamt 4 Lektionen.
Statische Dateien reichen nicht aus
Das copy-Modul überträgt eine Datei unverändert. Konfigurationsdateien benötigen jedoch oft einen Port oder Hostnamen, der sich je nach Server unterscheidet. Statische Kopien reichen dann nicht aus. 🤔
Das template-Modul kommt ins Spiel
Das template-Modul verarbeitet eine Datei zunächst mit Jinja2, setzt dabei Variablen ein und kopiert das Ergebnis anschließend auf den Host.
- name: Deploy config
template:
src: nginx.conf.j2
dest: /etc/nginx/nginx.confDie .j2-Konvention
Vorlagendateien tragen die Endung .j2, um sie als Jinja2-Dateien zu kennzeichnen. Das ist eine Konvention, keine feste Regel, aber alle halten sich daran.
src und dest
src verweist auf die .j2-Datei auf Ihrem Control Node, und dest ist der endgültige Pfad auf dem verwalteten Host.
template:
src: app.conf.j2
dest: /etc/app/app.confWo Vorlagen liegen
Ansible sucht Vorlagen standardmäßig in einem Verzeichnis namens templates neben Ihrem Playbook oder innerhalb einer Rolle. Ein Pfadpräfix ist nicht erforderlich.
templates/
nginx.conf.j2
site.ymlEine minimale Vorlage
In der .j2-Datei bleibt normaler Text unverändert, und {{ }}-Markierungen werden ersetzt. Hier wird eine Portvariable zu einer konkreten Zahl.
listen {{ http_port }};
server_name {{ domain }};Dateiberechtigungen festlegen
Wie copy akzeptiert template die Optionen owner, group und mode, sodass die gerenderte Datei mit den richtigen Besitzrechten abgelegt wird.
template:
src: app.conf.j2
dest: /etc/app.conf
mode: "0644"Vor dem Schreiben validieren
Die Option validate führt vor der Installation eine Prüfung der gerenderten Datei aus. So wird keine fehlerhafte Konfiguration verteilt.
template:
src: sshd.j2
dest: /etc/ssh/sshd_config
validate: "sshd -t -f %s"Vorlagen sind idempotent
Wenn die gerenderte Ausgabe mit der bereits auf dem Host vorhandenen Datei übereinstimmt, meldet template ok und nimmt keine Änderungen vor. Sie können den Task sicher immer wieder ausführen.
Bei Änderungen einen Handler benachrichtigen
Kombinieren Sie template mit notify, damit ein Dienst nur neu gestartet wird, wenn sich die Konfigurationsdatei tatsächlich geändert hat. Eine perfekte Kombination.
template:
src: nginx.conf.j2
dest: /etc/nginx/nginx.conf
notify: restart nginxtemplate im Vergleich zu copy
Verwenden Sie copy, wenn eine Datei überall gleich ist, und template, wenn sich ein Teil je nach Host unterscheiden muss.
Kurzer Check
Sie benötigen eine Konfigurationsdatei, deren Port je nach Server unterschiedlich ist. Welches Modul passt?
Zusammenfassung
Sie haben das template-Modul kennengelernt: Es rendert eine .j2-Datei mit Jinja2, legt sie unter dest ab, setzt Berechtigungen und bleibt idempotent. ✨
Häufig gestellte Fragen
Ist die Lektion „Das template-Modul und .j2-Dateien“ kostenlos?
Ja — der vollständige Text von „Das template-Modul und .j2-Dateien“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Ansible Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Ansible Academy-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „Das template-Modul und .j2-Dateien“?
Stellen Sie eine gerenderte Datei auf einem Host bereit. Du übst Ansible Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um Ansible Academy zu starten?
Keine Vorkenntnisse erforderlich. Ansible Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 1 von 4.
Wie lange dauert die Lektion „Das template-Modul und .j2-Dateien“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser Ansible Academy-Lektion Code schreiben und ausführen?
Ja. Jede Ansible Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- Das template-Modul und .j2-Dateien
- Variablen und Ausdrücke in Jinja2
- Schleifen und if-Blöcke in Templates
- Filter: default, join und upper