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

  • 相关阅读:
    ESP32环境搭建(arduino)
    uPyCraftIDE的介绍以及使用
    ESP32项目汇总
    MicroPython固件烧写
    Server 架构
    base家族在线解密工具
    第1年2月24日 iOS相机旋转问题 为什么UIimage.ciimage值为空
    第1年2月23日 du -sh * | sort -n 统计当前文件夹(目录)大小,并按文件大小排序
    第1年2月14日 mac 运行java
    第1年2月10日 检查iOS app证书过期时间信息
  • 原文地址:https://www.cnblogs.com/yjt1993/p/10968434.html
Copyright © 2011-2022 走看看