[TIP] Including/Importing an Ansible role w/ handlers more than once
[TIP] Including/Importing an Ansible role w/ handlers more than once
Originally discussed on Matrix.
TLDR; Ansible handlers are added to the global namespace.
Suppose you've got a role which defines a handler MyHandler
:
- name: MyHandler
...
listen: "some-topic"
Each time you import
/include
your role, a new reference to MyHandler
is added to the global namespace.
As a result, when you notify
your handler via the topics it listen
s to (ie notify: "some-topic"
), all the references to MyHandler
will be executed by Ansible.
If that's not what you want, you should notify
the handler by name (ie notify: MyHandler
) in which case Ansible will stop searching for other references as soon as it finds the first occurrence of MyHandler
. That means MyHandler
will be executed only once.
0
comments