• 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

  • 相关阅读:
    保障升级:Splashtop 公布安全顾问委员会成员
    Android Studio gradle-5.4.1
    C++__静态成员
    网络嗅探及协议分析-wireshark
    网络嗅探及协议分析-tcpdump
    Linux基本安全防护技术
    C++__动态对象
    C++___深浅拷贝
    C++____函数重载
    C++__函数的默认参数和占位
  • 原文地址:https://www.cnblogs.com/yjt1993/p/10968434.html
Copyright © 2020-2023  润新知