在ansible塔3.3.0设置中,我有一个相对简单的角色的小问题,只是看不到我的错误:
在/roles/ntp/tasks/main.yml中:
---
- name: copy ntp config
copy:
src: files/ntp.conf
dest: /etc/ntp.conf
owner: root
group: root
mode: 0644
notify: restart ntpd
在/roles/ntp/handlers/main.yml中:
---
- name: stop ntpd
service:
name: ntpd
state: stopped
listen: "restart ntpd"
- name: sync time once
shell: ntpdate 10.0.0.999
listen: "restart ntpd"
- name: start ntpd
service:
name: ntpd
state: started
enabled: yes
listen: "restart ntpd"
将此内容包含在完整的剧本中会导致错误:ERROR! The requested handler 'restart ntpd' was not found in either the main handlers list nor in the listening handlers list
然后对该主机执行失败,再次运行相同的剧本不会更改配置并因此完成。
如果我用此片段替换这三个任务,则notify
可以工作:
---
- name: restart ntpd
service:
name: ntpd
state: restarted
似乎目录和notify
在工作,只是listen
坏了。 Ansible Tower版本为3.3.0,其中应包含Ansible 2.6.2。