--- - name: Restart Linux agent service: name: sensu-agent state: restarted when: manage_sensu_agent_service | default(False) - name: Restart Windows agent action: module: win_service name: SensuAgent state: restarted when: manage_sensu_agent_service | default(False) # You probably noticed that we use some black magic in the previous handler. # Let us explain what it does and why did we bring it into the daylight. # # Under normal circumstances, we would write the previous handler as # # - name: Restart Windows agent # win_service: # name: SensuAgent # state: restarted # # When Ansible loads this handler, it makes sure it can find the win_service # module. And this is where things start to go downhill for us. Because we do # not have a guarantee that win_service module will be available (win_service # is not part of a certified collection), this eagerness prevents operating in # certain situations where win_service module is not even needed. # # And this is why we use the alternative form that forces Ansible to lazy-load # the module at the task/handler execution time. # # Of course, it would be much easier if we could declare ansible.windows as our # dependency, but this is not possible at the moment.