Zmienne i wyrażenia w Jinja2
Wstawianie wartości do szablonu.
Zmienne i wyrażenia w Jinja2 to bezpłatna lekcja Ansible Academy na CoddyKit. To lekcja 2 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 Ansible Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Ansible Academy zawiera 4 lekcji w sumie.
Zmienne w szablonach
Każda zmienna dostępna w play jest dostępna także w szablonie. Wystarczy ująć jej nazwę w {{ }}, aby wyświetlić jej wartość. 🌟
server_name {{ domain }};
worker_processes {{ cpu_count }};Dostęp do kluczy słownika
W przypadku zmiennej będącej słownikiem dostęp do klucza można uzyskać za pomocą notacji kropkowej lub nawiasowej. Zarówno db.host, jak i db['host'] zwracają tę samą wartość.
host = {{ db.host }}
port = {{ db['port'] }}Indeksowanie listy
Element listy można wybrać na podstawie jego pozycji, licząc od zera. {{ servers[0] }} zwraca pierwszy element.
primary = {{ servers[0] }}
backup = {{ servers[1] }}Korzystanie z faktów Ansible
Zebrane fakty są po prostu zmiennymi, więc szablony również mogą je odczytywać. ansible_hostname umieszcza w pliku nazwę samego hosta.
# This host is {{ ansible_hostname }}
bind {{ ansible_default_ipv4.address }}Działania matematyczne w wyrażeniach
Jinja2 wykonuje działania arytmetyczne wewnątrz nawiasów klamrowych. Można obliczyć wartość zamiast wpisywać ją na stałe, na przykład podwoić liczbę workerów.
max_workers {{ cpu_count * 2 }}Konkatenacja ciągów znaków
Ciągi znaków należy łączyć za pomocą operatora ~. Łączy on fragmenty niezależnie od ich typu, w przeciwieństwie do operatora plus, który działa liczbowo.
url = http://{{ host ~ ':' ~ port }}Wyrażenia porównawcze
Wyrażenia mogą również sprawdzać warunki. Porównania takie jak cpu_count > 4 zwracają true lub false, które można później wykorzystać w logice.
{{ http_port == 443 }}
{{ replicas >= 3 }}Komentarze w szablonach
Notatki można umieszczać między znacznikami {# ... #}. Jinja2 całkowicie je usuwa, więc nigdy nie pojawiają się w wyrenderowanym pliku.
{# This file is managed by Ansible #}
listen {{ http_port }};Niezdefiniowane zmienne powodują błąd
Domyślnie odwołanie do nieistniejącej zmiennej zatrzymuje play z błędem niezdefiniowanej zmiennej. Jinja2 celowo stosuje rygorystyczne zasady.
Ostrożnie ujmuj ciągi w cudzysłowy
Literał tekstowy wewnątrz wyrażenia wymaga cudzysłowów. Bez nich Jinja2 traktuje prod jako nazwę zmiennej, a nie tekst prod.
{{ 'production' if env == 'prod' else 'staging' }}Trzy rodzaje nawiasów klamrowych
Zapamiętaj tę trójkę: {{ }} wyświetla wartość, {% %} wykonuje logikę, a {# #} zawiera komentarz. Każdy rodzaj ma własne zadanie.
Szybki test
Szablon ma wyświetlać wartość przechowywaną w zmiennej. Który separator ją wyświetla?
Podsumowanie
Można już odczytywać w szablonach zmienne, fakty, klucze słowników i elementy list, wykonywać działania matematyczne, łączyć ciągi znaków oraz dodawać komentarze. Wyrażenia ożywiają konfigurację. ✨
Często zadawane pytania
Czy lekcja „Zmienne i wyrażenia w Jinja2” jest bezpłatna?
Tak — pełny tekst „Zmienne i wyrażenia w Jinja2” 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 Ansible Academy, przejdź na CoddyKit PRO. Kurs Ansible Academy zawiera 4 lekcji w sumie.
Co nauczysz się w „Zmienne i wyrażenia w Jinja2”?
Wstawianie wartości do szablonu. Ćwiczysz Ansible Academy 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ąć Ansible Academy?
Nie wymagamy żadnego doświadczenia. Ansible Academy 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 2 z 4.
Ile czasu zajmuje lekcja „Zmienne i wyrażenia w Jinja2”?
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 Ansible Academy?
Tak. Każda lekcja Ansible Academy 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