В настоящее время у меня есть три доступных задачи:
Я зарегистрировал последние два как обработчики, но прямые уведомления ansible кажутся неправильными для того, что я делаю:
Мне нужна такая структура:
Просто потому, что семантика кажется более правильной. Это не должна быть просто последовательность, и что-то вроде теста конфигурации не должно уведомлять о перезагрузке, потому что это просто реализация последовательности снова без логики (например, для перезагрузки сначала требуется тест)
Простое условное выражение в вашей пьесе с использованием when
должен работать, если вы игнорируете ошибки. По умолчанию запуск Ansible playbook прекращается при возникновении ошибки. Nginx configtest завершает работу с кодом состояния оболочки 0
об успехе и 1
при сбое, и вы можете использовать это для запуска различных задач в зависимости от результата -
tasks: - shell: service nginx configtest ignore_errors: True register: result - shell: service nginx reload when: result|success - local_action: mail subject='Nginx config error.' when: result|failed