1.简介
需要出发的才能执行任务,当前面的tasks中的任务执行成功后,若希望在此基础上触发其他任务,这时就需要定义handlers。
例如,当通过ansible的模块对目标主机的配置文件进行修改之后,如果任务执行成功,可以触发一个触发器,在触发器中定义目标主机的服务重启操作,以便配置文件生效
2.特点
1.handlers是ansible提供的条件机制之一,handlers和tasks很类似,但是只在被tasks通知的时候才会触发执行;
2.handlers只会在任务执行完成后执行。即使被通知了很多次,也只会执行一次。
3.示例
编写a.playbook文件,修改172.25.119.2上http的Listen端口80为8080
cd /etc/mnt/ansible
vim hosts
编写playbook文件
---
- hosts: test
remote_user: root
tasks:
- name: change port
command: sed -i 's/Listen\ 80/Listen\ 8080/g' /etc/httpd/conf/httpd.conf
notify:
- restart httpd server
handlers:
- name: restart httpd server
service:
name: httpd
state: restarted
执行playbook文件
查看172.25.119.2上的apache配置文件