Я использую Ansible для предоставления своего сервера разработки.
Я хочу, чтобы это всегда запускало некоторые услуги для меня. У меня есть обработчики для этой цели, но каков наилучший способ инициировать выполнение обработчика без условий, например, заставить его всегда работать?
Что-то вроде этого:
tasks:
- name: Trigger handler
run_handler: name=nginx-restart
Ответы:
Если вам абсолютно необходимо каждый раз запускать обработчик, то здесь есть два варианта:
1) запустить команду оболочки noop, которая всегда будет сообщать об изменениях
2) использовать debug вместе с change_when: для запуска обработчика
Также обратите внимание на Вариант 1 и Режим проверки: вы можете использовать его,
check_mode: no
если используете Ansible версии 2.2 или выше илиalways_run: yes
более ранние версии, чем те, чтобы задача не пропускалась в режиме проверки. Из моего ручного тестирования похоже, что обработчики остаются в режиме проверки, но, пожалуйста, будьте осторожны, поскольку ваш случай может отличаться.источник
changed_when
с большей логикой для реализации неидемпотентной задачи [которая в некоторых случаях может вызываться более одного раза) в качестве обработчика, а не задачи.Ansible предоставляет несколько опций для принудительной обработки:
1) Чтобы всегда вызывать все обработчики, запустите
ansible-playbook playbook.yml --force-handlers
, как описано здесь: https://github.com/ansible/ansible/issues/47772) Для принудительной обработки обработчиков, которые были уведомлены в определенный момент в книге игр, вы можете использовать мета-задачу https://docs.ansible.com/playbooks_intro.html :
3) Однако, похоже, что вы просто хотите убедиться, что служба запущена или перезапущена, независимо от результата другой задачи. В этом случае не используйте обработчик, используйте новую задачу, которая вызывает
service
модуль Ansible : http://docs.ansible.com/service_module.htmlисточник
Перезапуск службы - это одно; обеспечение того, чтобы это работало, является другим. Если вы хотите
ansible
убедиться, чтоnginx
работает, вы делаете это:источник