【发布时间】:2019-12-23 19:35:45
【问题描述】:
我为reboot server 创建了一个处理程序,并且我有一个角色,它使用多个配置设置操作系统(此角色中大约有 6 个任务),并且我只想在整个任务中的任何一个任务时触发reboot server 处理程序角色发生变化,整个角色完成后也会发生变化。
我试图在该角色的剧本中添加“通知”。但出现ERROR! 'notify' is not a valid attribute for a Play
site.yml
---
- name: Setup OS parameters
hosts: master_servers
roles:
- os_prep
tags: os_prep
notify:
- restart server
重启服务器的处理程序
---
- name: restart server
command: /sbin/shutdown -r now
async: 0
poll: 0
ignore_errors: true
notify:
- check server status
- name: check server status
wait_for:
port: 22
host: '{{ inventory_hostname }}'
search_regex: OpenSSH
delay: 10
timeout: 60
connection: local
运行整个角色 'os_prep' 后,如果角色中的任何任务具有 'changed' 状态,则触发 restart server 处理程序。
【问题讨论】:
-
它通过从所有需要重新启动服务器的任务中调用处理程序来修复,并且似乎处理程序最终只被触发一次。
标签: ansible yaml handler roles