问题描述
我有一个任务:
- name:上传docker配置文件模板:src: 'docker.systemd.j2'目标:'/etc/systemd/system/docker.service'通知:- 守护进程重新加载- 重新启动泊坞窗
在 Ansible playbook 的文档中,有一句话:
通知处理程序始终按照写入的顺序运行.
因此,预计 daemon reload 将在 restart docker 之前运行,但在日志中,我有:
任务 [swarm/docker : 上传 docker 配置文件] ************************…通知处理程序守护进程重新加载通知处理程序重新启动泊坞窗…运行处理程序 [swarm/docker : 重启 docker] ********************************…正在运行的处理程序 [swarm/docker: daemon reload] *************************************…日志中不再有NOTIFIED HANDLER".谁能解释一下,我做错了什么?:(
我认为您可能在处理程序文件中的daemon reload"之前列出了restart docker".
ansible 文档的那部分有点误导.这意味着处理程序的执行按照它们写入处理程序文件的顺序,而不是它们被通知的顺序.
这在词汇表
中更清楚一点I have a task:
- name: uploads docker configuration file
template:
src: 'docker.systemd.j2'
dest: '/etc/systemd/system/docker.service'
notify:
- daemon reload
- restart docker
in Ansible playbook's documentation, there is a sentence:
So, it is expected, that daemon reload will be ran before restart docker, but in logs, i have:
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] ********************************* …
There are no more "NOTIFIED HANDLER" in logs. Can anyone explain, what i'm doing wrong? :(
I think you may have "restart docker" listed before "daemon reload" in your handlers file.
That part of the ansible documentation is a bit misleading. It means that handlers are executed in the order they are written in the handlers file, not the order they are notified.
This is little more clear in the glossary
这篇关于通知处理程序的顺序的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!