Ansible 通知处理程序的顺序

Ansible 通知处理程序的顺序,ansible,Ansible,我有一个任务: - name: uploads docker configuration file template: src: 'docker.systemd.j2' dest: '/etc/systemd/system/docker.service' notify: - daemon reload - restart docker 在Ansible剧本中,有一句话: 通知处理程序始终按照写入的顺序运行 因此,预计在重新启动docker之前将运行守护程

我有一个任务:

- name: uploads docker configuration file
  template:
    src: 'docker.systemd.j2'
    dest: '/etc/systemd/system/docker.service'
  notify:
    - daemon reload
    - restart docker
在Ansible剧本中,有一句话:

通知处理程序始终按照写入的顺序运行

因此,预计在重新启动docker之前将运行守护程序重新加载,但在日志中,我有:

TASK [swarm/docker : uploads docker configuration file] ************************ … NOTIFIED HANDLER daemon reload NOTIFIED HANDLER restart docker … RUNNING HANDLER [swarm/docker : restart docker] ******************************** … RUNNING HANDLER [swarm/docker : daemon reload] ********************************* … 任务[swarm/docker:上载docker配置文件]************************ … 通知处理程序守护程序重新加载 通知处理程序重新启动docker … 正在运行处理程序[swarm/docker:重新启动docker]******************************** … 正在运行的处理程序[swarm/docker:守护程序重新加载]********************************* …
日志中不再有“通知处理程序”。谁能解释一下,我做错了什么(

我认为在处理程序文件中的“守护程序重新加载”之前可能会列出“重新启动docker”

ansible文档的这一部分有点误导,它意味着处理程序是按照它们写入处理程序文件的顺序执行的,而不是按照它们收到通知的顺序执行的


这一点在

中更为清楚,我刚刚发现我可以让处理程序调用其他处理程序

示例任务:

- name: Configure Apache
  copy: src=apache-azkaban.conf dest=/etc/apache2/sites-enabled/azkaban.conf
  notify:
   - a2enmod proxy
   - a2enmod proxy_http
在my
handlers/main.yml
中:

- name: a2enmod proxy
  shell: a2enmod proxy
  notify:
    - restart apache2

- name: a2enmod proxy_http
  shell: a2enmod proxy_http
  notify:
    - restart apache2

- name: restart apache2
  service: name=apache2 state=restarted

文档似乎已经更新:“通知处理程序总是按照定义的顺序运行,而不是按照Notify语句中列出的顺序。”