Ansible handlers are named tasks that execute only when notified by a task reporting a change, and run once per play after all regular tasks complete. This guide covers handler syntax, the difference between handlers and regular tasks, a practical Nginx restart example, the `listen` directive for grouping multiple handlers under one topic, `meta: flush_handlers` for mid-play execution, role-based handler organization, and advanced patterns including `run_once`, loop behavior, and `--force-handlers`. Common failure modes such as name mismatches, check-mode skipping, and duplicate handler names across scopes are also documented with troubleshooting guidance.
Table of contents
IntroductionKey TakeawaysPrerequisitesUnderstanding How Handlers Work in AnsibleDefining a Basic Handler in a PlaybookPractical Example: Restarting Nginx After a Config ChangeUsing the listen Directive to Notify Multiple HandlersForcing Handler Execution with meta: flush_handlersUsing Handlers in Ansible RolesAdvanced Handler PatternsTroubleshooting Common Handler IssuesFAQConclusionSort: