>_ IzzyLab

Практическое задание

Ansible: конфиг из шаблона

сложно

Напиши плейбук /root/tpl.yml и шаблон Jinja2, которые генерируют /etc/myapp.conf из переменной port со значением 9090. В готовом файле должна быть строка listen 9090. Проверка сама удалит /etc/myapp.conf и прогонит плейбук заново.

Что потренируешь:
  • ansible
  • модуль template
  • jinja2
  • переменные vars
  • ansible-playbook

Разбор темы

Модуль template рендерит целевой файл из Jinja2-шаблона (.j2): подставляет значения переменных в места с двойными фигурными скобками и кладёт результат по пути dest. Это базовый приём управления конфигами — один шаблон обслуживает разные окружения, меняется лишь набор переменных, которые удобно объявлять в секции vars. Модулю указывают src (шаблон) и dest (куда положить готовый файл).

Что проверяется

  1. плейбук генерирует конфиг с нуля
  2. в /etc/myapp.conf есть строка listen 9090
  3. конфиг рендерится модулем template
  4. повторный прогон ничего не меняет (changed=0)

Как это выглядит