gpt4 book ai didi

linux - ansible 处理程序仅在从参数化角色收到通知时运行一次

转载 作者:太空狗 更新时间:2023-10-29 12:28:15 26 4
gpt4 key购买 nike

我有一些 init 服务的 ansible playbook,这些服务大致相似,但有一些调整。在顶级剧本中,我两次包含该角色,例如

   roles:
- {role: "my-service", service: webserver}
- {role: "my-service", service: scheduler}

my-service 角色具有编写初始化脚本的任务和(重新)启动服务的处理程序。 tasks/main.yml 看起来像这样:

- name: setup init scripts
template: src=../../service-common/templates/my-service.conf dest=/etc/init/my-{{ service }}.conf
notify:
- restart my service

handlers/main.yml有这个内容:

- name: restart my services
service: name=my-{{ service }} state=restarted

但是在 playbook 运行之后,我们只剩下 webserver 服务在运行,调度程序是 stop/waiting。我怎样才能让处理程序将这些视为要处理的两个单独的通知?

最佳答案

Ansible documentation状态:

Handlers are lists of tasks, not really any different from regular tasks, that are referenced by a globally unique name.

因此它在确定何时/如何调用处理程序时不使用任何参数、变量等。仅使用名称。

关于linux - ansible 处理程序仅在从参数化角色收到通知时运行一次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35442406/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com