通知处理程序的顺序 [英] Order of notify handlers

查看:26
本文介绍了通知处理程序的顺序的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个任务:

- 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:

Notify handlers are always run in the order written.

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

这篇关于通知处理程序的顺序的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆