0Pricing
Ansible Academy · Lekcja

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

  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 Ansible Academy