Ansible使用介绍

72课时
1.9K学过
8分

课程评价 (0)

请对课程作出评价:
0/300

学员评价

暂无精选评价
3分钟

11 Playbook中handler的使用

由于Ansible幂等性的特性,有时前一个task发生了变化,后续的task无变化并不会重新执行,

但后续的task却可能受前一个task变化而影响。使用hanldernotify即可解决此问题,handler

用于当关注的资源发生变化时,才会采取一定的操作。在notify中列出的操作称为handler,

也即notify中调用handler中定义的操作

示例:

vim http.yml

– host: websrvs

remote_user: root

tasks:

– name: install httpd package

yum: name=httpd

– name: copy conf file

copy: src=files/httpd.conf dest=/etc/httpd/conf/ backup=yes

– name: start service

service: name=httpd state=startd enable=yes

vim /files/httpd.conf

Listen 8080

ansible-playbook http.yml

此时无法重启服务,端口仍为80

vim http.yml

– host: websrvs

remote_user: root

tasks:

– name: install httpd package

yum: name=httpd

– name: copy conf file

copy: src=files/httpd.conf dest=/etc/httpd/conf/ backup=yes

notify: restart service

– name: start service

service: name=httpd state=startd enable=yes

handlers:

– name: restart service

service: name=httpd state=restarted

由于httpd.conf发生了变化,触发了notify,执行相应的handler操作,httpd服务重启后

监听端口变为8080