Вступить в клуб →
лёгкаявопросCI/CD и инфраструктура как код

Плейбук Ansible падает при повторном запуске

В роли провижининга сервера есть задача:

- name: Создать каталог приложения
  command: mkdir /opt/app
  become: true

На новых серверах плейбук отрабатывает. При повторном прогоне по тем же хостам задача падает:

fatal: [app-01]: FAILED! => {"msg": "non-zero return code", "stderr": "mkdir: cannot create directory '/opt/app': File exists"}

Как правильно исправить задачу?

  • Добавить задаче `ignore_errors: true`, чтобы повторные запуски не ломали плейбук: сообщение о существующем каталоге будет проигнорировано, и роль отработает до конца
  • Запускать плейбук только на новых хостах, повторные прогоны по настроенным серверам не предусмотрены
  • Использовать модуль `file` с `state: directory` — он приводит систему к нужному состоянию и на повторном запуске отчитывается как ok
  • Заменить `command` на `shell` — оболочка обработает существующий каталог без ошибки

🔒 Проверка ответа — для участников клуба

  • Проверка ответа
  • Подсказка, если застряли
  • Разбор с объяснением, почему так
  • Прогресс по всем задачам и виртуальные собеседования
Зарегистрироваться →

Регистрация занимает минуту

Другие задачи раздела