• 第十三章 Ansibleplaybook任务控制


    一、playbook 任务标签概述

    如果你有一个大型的剧本,那么只能运行它的特定部分而不是在剧本中运行所有内容可能会很有用。因此,Ansible支持“tags:”属性。
    
    执行playbook时,可以通过两种方式根据 “tags” 过滤任务
    1.在命令行上,使用或选项“--tags或 --skip-tags ”
    2.在ansible配置设置中,使用和选项“TAGS_RUN 或 TAGS_SKIP”
    

    二、playbook 任务标签作用

    默认情况下,Ansible在执行一个playbook时,会执行playbook中定义的所有任务,Ansible的标签(tag)功能可以给单独任务甚至整个playbook打上标签,然后利用这些标签来指定要运行playbook中的个别任务,或不执行指定的任务。
    

    三、playbook 打任务标签方式

    1.对一个task下面的一个name打一个标签
    2.对一个task下面的一个name打多个标签
    3.对task下面的多个name打一个标签
    

    四、对一个task打一个标签

    .. ... ...
        - name: Config nginx Server
          copy:
            src: /root/conf/linux.wp.com.conf
            dest: /etc/nginx/conf.d/
          notify:
            - restart_web_nginx
            - get_nginx_status
          when: ansible_fqdn is match "web*"
          tags: config_web
    ... ... ...
    

    五、对一个task下面的一个name打多个标签

        - name: Config nginx Server
          copy:
            src: /root/conf/linux.wp.com.conf
            dest: /etc/nginx/conf.d/
          notify:
            - restart_web_nginx
            - get_nginx_status
          when: ansible_fqdn is match "web*"
          tags: 
            - config_web
            - config_nginx
    

    六、对task下面的多个name打一个标签

        - name: Config slb Server
          copy:
            src: /root/conf/proxy.conf
            dest: /etc/nginx/conf.d
          notify: restart_slb
          when: ansible_fqdn == "lb01"
          tags: config_nginx
    
        - name: Config nginx Server
          copy:
            src: /root/conf/linux.wp.com.conf
            dest: /etc/nginx/conf.d/
          notify:
            - restart_web_nginx
            - get_nginx_status
          when: ansible_fqdn is match "web*"
          tags: 
            - config_web
            - config_nginx
    

    七、标签的使用

    #查看所有的标签(也可以查看该剧本有多少 hosts )
    [root@m01 ~]# ansible-playbook lnmp6.yml --list-tags
    
    #执行标签指定的动作
    [root@m01 ~]# ansible-playbook lnmp2.yml -t config_web
    
    #执行指定多个标签的动作
    [root@m01 ~]# ansible-playbook lnmp2.yml -t config_nginx,config_web
    
    #跳过指定的标签动作
    [root@m01 ~]# ansible-playbook lnmp2.yml --skip-tags config_nginx
    
  • 相关阅读:
    打印水仙花数
    ios9基础知识总结(一)
    简单工厂模式自我理解
    例子
    委托
    IO 磁盘总结
    配置文件命令
    三层架构dal 层基本代码 非查询/查询
    三层架构自我总结
    三层架构源代码
  • 原文地址:https://www.cnblogs.com/jhno1/p/15723271.html
Copyright © 2020-2023  润新知