微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

ansible handlers

示例:安装Nginx

---
 - hosts: hadoop    #指定主机组
   remote_user: root    #远程执行命令的用户
   gather_facts: no     #是否获取远程主机的信息

   tasks:
     - name: install Nginx
       yum:
         name: Nginx
         state: present
       notify: restart Nginx        #通知机制,当这个任务执行的时候,通知handlers执行
     - name: start Nginx server
       service:
         name: Nginx
         state: started

   handlers:
     - name: restart Nginx
       service:
         name: Nginx
         state: restarted

注:在剧本编写完以后,可以使用--Syntax-check检查剧本的语法是否有问题,使用--check或者-C来预执行剧本。

handlers的用处:一般是当修改某个配置文件的时候,通过handlers来执行某个任务。

在某些情况下,可能需要同时调用多个handlers,或者handlers调用其他的handlers。

1、一个任务同时调用多个handlers。

- name: test
  command: /test.sh
   notify:
     - restart Nginx
     - restart MysqL

2、要handlers调用handlers,则在handlers中直接使用notify

handlers:
  - name: test
    service:
      name: Nginx
      state: restarted
    notify: restart MysqL

 当剧本执行失败以后,handlers可能并没有被触发,也就不会执行了,如果想不管任务是否成功执行,都强制执行handlers。

在这个时候,可以在执行playboox的时候,添加--force-handlers来强制执行handlers

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐