在Ansible Playbook中,如果你想在同一个任务中指定多个处理器,你可以将多个控制任务放在一个处理器下面,使用一个trigger关键字而不是一个命名控制器。例如:
- name: task1
command: /path/to/command
notify: restart service
notify: reload service
handlers:
- name: restart service
systemd:
name: myservice
state: restarted
- name: reload service
systemd:
name: myservice
state: reloaded
在这个例子中,“restart服务”和“reload服务”都被指定为“通知”指令,但它们在同一个处理器下。你也可以使用“listen”而不是“notify”来达到同样的效果。例如:
- name: task1
command: /path/to/command
handlers:
- name: restart or reload service
systemd:
name: myservice
state: "{{trigger}}"
在这个例子中,“restart或reload服务”用一个处理器来处理。在指令中,你可以指定“trigger”值为“restart”或“reload”,从而触发处理器。在这种情况下,“listen”和“trigger”是等效的。