Handlers

示例:

- name: Configure webserver with nginx and tls
hosts: webservers
sudo: True
vars:
  conf_file: /etc/nginx/sites-available/default
tasks:
  - name: Install nginx
  apt: name=nginx update_cache=yes cache_valid_time=3600
  - name: copy nginx config file
  template: src=templates/nginx.conf.j2 dest={{ conf_file }}
  notify: restart nginx
  - name: enable configuration
  file: dest=/etc/nginx/sites-enabled/default src={{ conf_file }} state=link
  notify: restart nginx
handlers:
  - name: restart nginx
  service: name=nginx state=restarted

 

说明:

handlers是ansible支持的一种状态形式.handler类似于task,但是它只有被task通知后才能运行(notify).
task会触发通知 如果ansible意识到task改变了系统的状态(playbook执行后会返回task是否改变节点系统的状态 是changed=1)
task把handler的名字作为参数来通告handler
只有在所有的task都执行后 handler才运行 而且只会运行一次 即使被多次被通告 handler按照在playbook中的先后顺序执行 而不是被通告的顺序

你可能感兴趣的:(Handlers)