Jinja2 называют движком шаблонов, который превращает статичные конфиги Ansible в динамичные и умные. Вместе они помогают генерировать персонализированные конфиги для сотен серверов буквально в несколько строк кода — без копипаста и ручной правки каждого файла.
Что важно знать в Jinja для Ansible?
1️⃣ Основы синтаксиса
2️⃣ Условия (if-else) и циклы (for)
Что важно знать в Jinja для Ansible?
1️⃣ Основы синтаксиса
- {{ переменная }} – подстановка значений
- {% ... %} – управляющие конструкции (условия, циклы)
- {# комментарий #} – комментарии в шаблонах
2️⃣ Условия (if-else) и циклы (for)
{% if ansible_os_family == "Debian" %}
apt install nginx
{% elif ansible_os_family == "RedHat" %}
yum install nginx
{% endif %}
{% for user in users %}
- name: {{ user.name }}
uid: {{ user.uid }}
{% endfor %}
3️⃣ Фильтры – мощь Jinja
4️⃣ Работа с Ansible
5️⃣ Полезные функции
to_json / to_yaml – сериализация данных
Генерация конфига Nginx в Ansible:
- default – значение по умолчанию: {{ var | default('default_value') }}
- map – обработка списков: {{ users | map(attribute='name') | list }}
- regex_replace – замена по регулярке: {{ string | regex_replace('^(.*)$', 'prefix-\1') }}
4️⃣ Работа с Ansible
- Шаблоны (template модуль) – генерация конфигов (nginx, systemd и др.)
- Динамические переменные – hostvars, groups, ansible_facts
- set_fact + Jinja2 – вычисление значений на лету
5️⃣ Полезные функции
- join – объединение списка в строку: {{ list | join(',') }}
- split – разбиение строки: {{ path | split('/') }}
to_json / to_yaml – сериализация данных
Генерация конфига Nginx в Ansible:
- name: Generate Nginx config
template:
src: nginx.conf.j2
dest: /etc/nginx/nginx.conf
nginx.conf.j2:
server {
listen {{ nginx_port | default(80) }};
server_name {{ server_name }};
root {{ web_root }};
}
Зачем это нужно?
📹 Продолжить знакомство с Ansible, посмотреть на статистику, логи, понаблюдать за реальной загрузкой системы, провести тесты на устойчивость и производительность — на бесплатном вебинаре «Ansible в действии: развернём кластер с Kuberspray и запустим AI-приложение». Встречаемся 16 апреля 19:00 МСК.
Занять место и получить ссылку для подключения — в боте.
- Ваши конфиги становятся универсальными. Один шаблон подстраивается под любые окружения — dev, stage или prod. Меняете переменные, а система сама генерирует нужные версии файлов.
- Код выглядит чище и понятнее. Больше не нужно дублировать одни и те же блоки настроек для каждого сервера — шаблоны собирают всё в аккуратные структуры, как конструктор.
- Ansible раскрывает весь потенциал. Фильтры, условия и циклы Jinja2 превращают статичные плейбуки в динамичные сценарии и даже сложные задачи решаются парой элегантных строк.
📹 Продолжить знакомство с Ansible, посмотреть на статистику, логи, понаблюдать за реальной загрузкой системы, провести тесты на устойчивость и производительность — на бесплатном вебинаре «Ansible в действии: развернём кластер с Kuberspray и запустим AI-приложение». Встречаемся 16 апреля 19:00 МСК.
Занять место и получить ссылку для подключения — в боте.