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

  • 相关阅读:
    RTP时间戳
    FAT,FAT32,NTFS单目录文件数量限制
    SWT将系统图标保存为本地文件
    HttpClient+jsoup登录+解析 163邮箱
    RTP协议分析
    Java and unsigned int, unsigned short, unsigned byte, unsigned long, etc. (Or rather, the lack thereof)
    YUV转为RGB24及IplImage格式(I420和YV12)及Java版实现
    Using a long as ArrayList index in java
    详解 SWT 中的 Browser.setUrl(String url, String postData, String[] headers) 的用法
    swt生成、jar可执行包生成.exe可执行文件(giter)
  • 原文地址:https://www.cnblogs.com/yjt1993/p/10968434.html
Copyright © 2011-2022 走看看