【发布时间】:2023-02-21 04:21:17
【问题描述】:
我正在为 Ansible 角色编写一个处理程序来停止和启动 Docker。 stop在handlers/main.yml中是这样写的
- name: stop docker
block:
- name: stop docker (Debian based)
block:
- name: stop service docker on debian, if running
systemd: name=docker state=stopped
- name: stop service docker.socket on debian, if running
systemd: name=docker.socket state=stopped
when: ansible_pkg_mgr == "apt"
- name: stop docker (CentOS based)
block:
- name: stop service docker on CentOS, if running
service:
name: docker
state: stopped
- name: stop service docker.socket on CentOS, if running
service:
name: docker
state: stopped
when: ansible_pkg_mgr == "yum"
然后在我的任务/主文件中,我调用 stop docker
---
- name: test
command: echo "Stopping docker"
notify:
- stop docker
我收到的错误是ERROR! Unexpected Exception, this is probably a bug: 'Block' object has no attribute 'notified_hosts'
如果我在剧本中将其作为任务运行,它就可以工作。
有没有办法在 Ansible 处理程序中使用 block?
【问题讨论】:
标签: ansible