Плейбук 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` — оболочка обработает существующий каталог без ошибки
