233123 发表于 2016-5-19 09:01:40

ansible学习笔记6-playbooks之handlers

Handlers 在发生改变时执行的操作

module具有幂等性,所以当远端系统被人改动时,可以重放playbooks达到恢复的
目的。playbooks本身可以识别这种改动,并且有一个基本的event system,可以
响应这种改动

notify actions会在playbook的每一个task结束时被触发,而且即使有多个不同
的task通知改动的发生,notify actions只会被触发一次

举例来说,比如多个resources指出因为一个配置文件被改动,所以apache需要重
新启动,但是重新启动的操作只会被执行一次

这里有一个例子,当一个文件的内容被改动时,重启两个services

- name: template configuration file
template: src=template.j2 dest=/etc/foo.conf
notify:
      - restart memcached
- restart apache

notify下列出的即是handlers

handlers也是一些task的列表,通过名字来引用,它们和一般的task并没有什么
区别。handlers是由通知者进行notify,如果没有被notify,handlers不会执行
不管多少个通知者进行了notify,等到play中的所有task执行完成之后
handlers也不会被执行一次

这里是一个handlers的示例
handlers:
    - name: restart memcached
service: name=memcached state=restarted
- name: restart apache
service: name=apache state=restarted

Handlers最佳的应用场景是用来重启服务,或者触发系统重启操作,除此以外很
少用到了

页: [1]
查看完整版本: ansible学习笔记6-playbooks之handlers