>_ IzzyLab

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

Ansible: idempotent-строка в файле

средне

Напиши плейбук /root/line.yml, который гарантирует наличие строки db.local 127.0.0.1 в конфиге /etc/app/hosts.conf (модуль lineinfile — добавит, если строки нет, и не продублирует при повторном прогоне). Прогони его.

Что потренируешь:
  • ansible
  • lineinfile
  • идемпотентность
  • правка конфигов
  • iac

Разбор темы

Модуль lineinfile гарантирует, что в текстовом файле присутствует нужная строка: если её нет — добавит, если есть — оставит как есть. Это ядро идемпотентности в подходе «инфраструктура как код»: сколько раз ни прогоняй плейбук, результат один и тот же, дубликатов не появляется. Модулю указывают целевой файл и саму строку, а параметр create заведёт файл, если его ещё нет — проверять на повтор вручную не нужно, модуль делает это сам.

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

  1. плейбук /root/line.yml проходит syntax-check
  2. в /etc/app/hosts.conf есть строка db.local 127.0.0.1

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