0Pricing
Ansible Academy · Lektion

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.conf

Die .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.conf

Wo 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.yml

Eine 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 nginx

template 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

  1. Das template-Modul und .j2-Dateien
  2. Variablen und Ausdrücke in Jinja2
  3. Schleifen und if-Blöcke in Templates
  4. Filter: default, join und upper
← Zurück zu Ansible Academy