Handlers in Ansible are special tasks that only get executed when triggered by another tasks via the
By default, handlers run not immediately but only after all the tasks in a particular play have been completed.
This makes sense, as the handler will only run one time, regardless of how many tasks have notified it.
For example, if multiple tasks update a configuration file and notify a handler to restart Nginx, Ansible will run this handler only one time to avoid unnecessary restarts.
Cool Tip: Enable DEBUG mode and increase VERBOSITY in Ansible! Read more →
Force Ansible Handlers To Run Immediately
If you want to force handlers to run immediately, without waiting for the end of the play, add a
meta: flush_handlers task:
tasks: - name: "Some task" command: ... - name: "Flush handlers" meta: flush_handlers - name: "Some other task" command: ...
meta: flush_handlers task immediately triggers any handlers that have been notified at that point in the play.