Ответ
Нет, не отработает. Хендлеры в Ansible запускаются только по уведомлению (notify) от задачи, которая изменила состояние системы (changed=true).
Статус ok означает, что задача выполнилась, но не внесла изменений (например, конфигурационный файл уже находился в нужном состоянии).
Пример из плейбука:
- name: Configure Nginx
hosts: webservers
tasks:
- name: Deploy nginx config template
ansible.builtin.template:
src: nginx.conf.j2
dest: /etc/nginx/nginx.conf
notify: # Уведомление отправляется ТОЛЬКО если задача изменила файл
- Reload nginx service
handlers:
- name: Reload nginx service
ansible.builtin.service:
name: nginx
state: reloaded
Как проверить, сработала ли задача:
Запустите плейбук с флагом -v. Вы увидите "changed": true или "changed": false для каждой задачи. Хендлер выполнится в конце рана, если хотя бы одна из уведомивших его задач была в состоянии changed.