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
在myhandlers/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语句中列出的顺序。”