在Ansible中可以通知一组服务而不是个人吗?

- name: be sure check-http.rb is copied copy: src: /tmp/sensu-plugins-http/bin/check-http.rb dest: /etc/sensu/plugins/check-http.rb remote_src: true owner: sensu group: sensu mode: 0500 notify: - restart sensu-api - restart sensu-client - restart sensu-server - name: be sure check_websites.json is copied template: src: check_websites.j2 dest: "{{ sensu_conf_d }}/check_websites.json" register: check_websites_config notify: - restart sensu-api - restart sensu-client - restart sensu-server 

而不是重复:

 notify: - restart sensu-api - restart sensu-client - restart sensu-server 

有可能使其简洁,例如:

 notify: - restart sensu-services 

预期的答案

@knowhybuild议这个解决scheme ,但我正在寻找一个解决scheme,能够结合多个重新启动处理程序,而不是在任务目录

恕我直言, Ansible目前没有这样的function。

有一些或多或less丑陋的解决方法(如问题中的链接),我不会在这里重复。

我能想到的最好的解决scheme是编写一个结合了这些任务的处理程序。 假设问题中的处理程序刚刚重新启动服务,则可以使用with_items循环,如下所示:

 - name: restart sensu-services service: name: "{{ item }}" state: restarted with_items: - sensu-api - sensu-client - sensu-server 

有一个打开的function请求来支持blocks作为处理程序。 这将是这个用例的一个很好的抽象。