zoukankan      html  css  js  c++  java
  • 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的执行需要在所以的tasks执行完以后才开始执行,那么如果想要在执行某一个tasks以后就执行对应的handlers呢?这个时候需要使用一个模块:meta

    用法: - meta: flush_handlers

    如:

    ---
     - hosts: hadoop    #指定主机组
       remote_user: root    #远程执行命令的用户
       gather_facts: no     #是否获取远程主机的信息
    
       tasks:
         - name: install nginx
           yum:
             name: nginx
             state: present
           notify: restart nginx        #通知机制,当这个任务执行的时候,通知handlers执行
    -meta: flush_handlers
    - name: start nginx server service: name: nginx state: started handlers: - name: restart nginx service: name: nginx state: restarted

    在某些情况下,可能需要同时调用多个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

  • 相关阅读:
    Harbor私有镜像仓库(下)
    项目课---企业级Memcached服务应用实践(八)
    项目课---OpVEN架构实施方案(七)
    项目课---Mha-Atlas-MySQL高可用方案实践(六)
    Nginx 反向代理
    Ansible搭建LNMP
    Ansible
    Ansible运维自动化
    JAVA企业级应用服务器之TOMCAT实战
    ssh自动分发密匙脚本样板
  • 原文地址:https://www.cnblogs.com/yjt1993/p/10968434.html
Copyright © 2011-2022 走看看