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.confKonwencja .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.confGdzie 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.ymlMinimalny 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 nginxtemplate 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
- Moduł template i pliki .j2
- Zmienne i wyrażenia w Jinja2
- Pętle i bloki if w szablonach
- Filtry: default, join i upper