handlers 和 notify 是成对使用的,
notify代表触发条件,写在要监控的模块下,
handlers代表触发后,进行具体操作,用法和模块语法一样
notify的值 必须要和handlers的name值相同,这样才算是一对
handlers和tasks同级别,palybook中可以有多对handlers,写好对应的值即可
只需在要监控的模块tasks下添加notify,即可完成
示例:当配置文件发生变动后,备份原有的配置文件,并触发handlers的restarted操作
-
hosts: all
remote_user: roottasks:
name: install nginx package
yum: name=nginx state=latest-
name: copy conf file
copy: src=files/nginx.conf dest=/etc/nginx/conf/ backup=yes
notify:- restart service # 和handlers的name值要相同,不然不能触发相关操作
- check service #第二个触发条件
name: start service
service: name=nginx state=started enable=yes
handlers:
-
name: restart service #和notify值对应,不然不能触发
service: name=nginx state=restarted- name: check service #和第二个触发条件对应,触发后识别shell模块操作
shell: /data/nginx/sbin/nginx -t > check.log
- name: check service #和第二个触发条件对应,触发后识别shell模块操作