Модуль template рендерит файл с Jinja2 ({{ var }}, {% if %}) на целевой хост; так генерируют nginx.conf, env-файлы, unit'ы из одних переменных.
Разбор
- Шаблоны лежат в
templates/ роли.
validate у template проверяет конфиг до замены.
- Notify handler на restart после changed.
- Не кладите секреты в шаблоны без vault.
Пример
- name: Render nginx site
ansible.builtin.template:
src: site.conf.j2
dest: /etc/nginx/conf.d/site.conf
notify: Reload nginx
Итог
template + Jinja2 = конфиги из переменных с идемпотентной доставкой.