dfsgwe 发表于 2016-4-8 14:17:12

ansible playbook handlers

                      Ansible playbook中的handlers

执行task之后,服务器发生变化之后要执行的一些操作,比如我们修改了配置文件后,需要重启一下服务

vim /etc/ansible/handlers.yml
---
- name: handlers test
hosts: client.wyp.com
user: root
tasks:
    - name: copy file
      copy: src=/tmp/1.txt dest=/tmp/2.txt#服务端拷贝到客户端
      notify: test handlers#指定当copy成功后,调用handlers执行后续命令。否则不执行
handlers:
    - name: test handlers#用来指定上面要调用的名称
      shell: echo "111111" >> /tmp/2.txt

执行命令:ansible-playbook handlers.yml
说明,只有copy模块真正执行后,才会去调用下面的handlers相关的操作。也就是说如果1.txt和2.txt内容是一样的,并不会去执行handlers里面的shell相关命令。 这种比较适合配置文件发生更改后,重启服务的操作。这个copy模块和rsync类似,如果对方机器上有这个文件,且内容一样,是不会拷贝的,比较智能。而scp不管内容是否一样,都会覆盖原文件的。

handlers['hndlz] 操作者;处理器; 处理程序
notify通知; 布告

                   

页: [1]
查看完整版本: ansible playbook handlers