0Pricing
DevOps Bootcamp · Lekcja

Moduł template i pliki .j2

Wdrażanie wyrenderowanego pliku na hoście.

Moduł template i pliki .j2 to bezpłatna lekcja DevOps Bootcamp na CoddyKit. To lekcja 1 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej DevOps Bootcamp, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs DevOps Bootcamp zawiera 4 lekcji w sumie.

Same pliki statyczne nie wystarczą

Moduł copy dostarcza plik bez zmian. Pliki konfiguracyjne często wymagają jednak portu lub nazwy hosta różniących się na poszczególnych serwerach, więc statyczne kopie nie wystarczają. 🤔

Moduł template

Moduł template najpierw renderuje plik za pomocą Jinja2, wypełniając zmienne, a następnie kopiuje wynik na hosta.

- name: Deploy config
  template:
    src: nginx.conf.j2
    dest: /etc/nginx/nginx.conf

Konwencja .j2

Pliki źródłowe szablonów mają rozszerzenie .j2, które oznacza, że używają Jinja2. To konwencja, a nie sztywna reguła, ale wszyscy jej przestrzegają.

src i dest

src wskazuje plik .j2 na węźle sterującym, a dest oznacza końcową ścieżkę na zarządzanym hoście.

template:
  src: app.conf.j2
  dest: /etc/app/app.conf

Gdzie przechowywać szablony

Ansible domyślnie szuka szablonów w katalogu templates obok playbooka lub wewnątrz roli. Nie trzeba dodawać prefiksu ścieżki.

templates/
  nginx.conf.j2
site.yml

Minimalny szablon

W pliku .j2 zwykły tekst pozostaje bez zmian, a znaczniki {{ }} są zastępowane. W tym przypadku zmienna port przyjmuje postać rzeczywistej liczby.

listen {{ http_port }};
server_name {{ domain }};

Ustawianie uprawnień pliku

Podobnie jak copy, template przyjmuje wartości owner, group i mode, dzięki czemu wyrenderowany plik otrzymuje właściwego właściciela i uprawnienia.

template:
  src: app.conf.j2
  dest: /etc/app.conf
  mode: "0644"

Weryfikacja przed zapisem

Opcja validate uruchamia polecenie sprawdzające na wyrenderowanym pliku przed jego zainstalowaniem, dzięki czemu uszkodzona konfiguracja nigdy nie zostanie wdrożona.

template:
  src: sshd.j2
  dest: /etc/ssh/sshd_config
  validate: "sshd -t -f %s"

Szablony są idempotentne

Jeśli wyrenderowany wynik jest identyczny z plikiem znajdującym się już na hoście, template zgłasza ok i niczego nie zmienia. Można go bezpiecznie uruchamiać wielokrotnie.

Powiadamianie handlera o zmianie

Połącz template z notify, aby usługa była restartowana tylko wtedy, gdy plik konfiguracyjny rzeczywiście się zmienił. Idealne połączenie.

template:
  src: nginx.conf.j2
  dest: /etc/nginx/nginx.conf
  notify: restart nginx

template a copy

Sięgaj po copy, gdy plik jest wszędzie taki sam, a po template, gdy dowolna jego część musi różnić się zależnie od hosta.

Szybki test

Potrzebny jest plik konfiguracyjny, w którym port różni się na poszczególnych serwerach. Który moduł będzie odpowiedni?

Podsumowanie

Moduł template renderuje plik .j2 za pomocą Jinja2, umieszcza go w dest, ustawia uprawnienia i zachowuje idempotencję. ✨

Często zadawane pytania

Czy lekcja „Moduł template i pliki .j2” jest bezpłatna?

Tak — pełny tekst „Moduł template i pliki .j2” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu DevOps Bootcamp, przejdź na CoddyKit PRO. Kurs DevOps Bootcamp zawiera 4 lekcji w sumie.

Co nauczysz się w „Moduł template i pliki .j2”?

Wdrażanie wyrenderowanego pliku na hoście. Ćwiczysz DevOps Bootcamp z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć DevOps Bootcamp?

Nie wymagamy żadnego doświadczenia. DevOps Bootcamp w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 1 z 4.

Ile czasu zajmuje lekcja „Moduł template i pliki .j2”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji DevOps Bootcamp?

Tak. Każda lekcja DevOps Bootcamp zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Moduł template i pliki .j2
  2. Zmienne i wyrażenia w Jinja2
  3. Pętle i bloki if w szablonach
  4. Filtry: default, join i upper
← Powrót do DevOps Bootcamp