• ansible-任务控制tags


    1. ansible-任务控制tags介绍
            如果你有一个大型的剧本,那么只能运行它的特定部分而不是在剧本中运行所有内容可能会很有用。因此,Ansible支持“tags:”属性。
            执行playbook时,可以通过两种方式根据 “tags” 过滤任务

      • 在命令行上,使用或选项“--tags或 --skip-tags ”
      • 在ansible配置设置中,使用和选项“TAGS_RUN 或 TAGS_SKIP”

      标签可以应用于Ansible中的许多结构(参见下面的“标签继承”),但最简单的用途是单独的任务。以下是使用不同标记标记两个任务的示例:

     1 tasks:
     2 - yum:
     3     name: "{{ item }}"
     4     state: present
     5   loop:
     6   - httpd
     7   - memcached
     8   tags:
     9   - packages
    10 
    11 - template:
    12     src: templates/src.j2
    13     dest: /etc/foo.conf
    14   tags:
    15   - configuration

       如果您只想运行一个非常长的剧本的“配置”和“包”部分,您可以在命令行上使用该选项:--tags

    1   ansible-playbook example.yml --tags "configuration,packages"

       另一方面,如果要在没有某些标记任务的情况下运行playbook ,可以使用命令行选项:--skip-tags

    1   ansible-playbook example.yml --skip-tags "packages"

    2. ansible-任务控制实例
      1)编写一个nginx的tags控制版本

     1 [root@test-1 bin]# vim  /ansible/nginx/bin/nginx_tags.yaml 
     2 [root@test-1 bin]# cat  /ansible/nginx/bin/nginx_tags.yaml 
     3 - hosts: web1
     4   remote_user: root
     5   vars:
     6     hello: Ansible
     7  
     8   tasks:
     9   - name: Add repo 
    10     yum_repository:
    11       name: nginx
    12       description: nginx repo
    13       baseurl: http://nginx.org/packages/centos/7/$basearch/
    14       gpgcheck: no
    15       enabled: 1
    16     tags: 
    17     - yum install
    18 
    19   - name: Install nginx
    20     yum:
    21       name: nginx
    22       state: latest
    23     tags:
    24     - yum nginx install
    25 
    26   - name: Copy nginx configuration file
    27     copy:
    28       src: /ansible/nginx/conf/site.conf
    29       dest: /etc/nginx/conf.d/site.conf
    30   - name: Start nginx
    31     service:
    32       name: nginx
    33       state: started
    34   - name: Create wwwroot directory
    35     file:
    36       dest: /var/www/html
    37       state: directory
    38   - name: Create test page index.html
    39     shell: echo "hello {{hello}}" > /var/www/html/index.html

      2) 检查配置文件是否正确

    1 [root@test-1 bin]# ansible-playbook --syntax-check nginx_tags.yaml 
    2 
    3 
    4 playbook: nginx_tags.yaml

      3) 执行文件
          包括tags 标签的执行的

     1 [root@test-1 bin]# ansible-playbook nginx_tags.yaml  --tags "yum nginx install"
     2 [WARNING]: log file at /var/log/ansible/ansible.log is not writeable and we cannot create it, aborting
     3 
     4 
     5 PLAY [web1] ************************************************************************************************************************************
     6 
     7 TASK [Gathering Facts] *************************************************************************************************************************
     8 ok: [192.168.200.133]
     9 ok: [192.168.200.132]
    10 
    11 TASK [Install nginx] ***************************************************************************************************************************
    12 ok: [192.168.200.133]
    13 ok: [192.168.200.132]
    14 
    15 PLAY RECAP *************************************************************************************************************************************
    16 192.168.200.132            : ok=2    changed=0    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   
    17 192.168.200.133            : ok=2    changed=0    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   

          不包括tags内的以外的执行

     1 [root@test-1 bin]# ansible-playbook nginx_tags.yaml  --tags "yum install,yum nginx install"
     2 [WARNING]: log file at /var/log/ansible/ansible.log is not writeable and we cannot create it, aborting
     3 
     4 
     5 PLAY [web1] ************************************************************************************************************************************
     6 
     7 TASK [Gathering Facts] *************************************************************************************************************************
     8 ok: [192.168.200.133]
     9 ok: [192.168.200.132]
    10 
    11 TASK [Add repo] ********************************************************************************************************************************
    12 ok: [192.168.200.133]
    13 ok: [192.168.200.132]
    14 
    15 TASK [Install nginx] ***************************************************************************************************************************
    16 ok: [192.168.200.133]
    17 ok: [192.168.200.132]
    18 
    19 PLAY RECAP *************************************************************************************************************************************
    20 192.168.200.132            : ok=3    changed=0    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   
    21 192.168.200.133            : ok=3    changed=0    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0
  • 相关阅读:
    根据对象的属性排序数组
    将多维数组的元素全部取出,组成一维数组的方法
    微信公众号报错 config:invalid signature
    改造业务代码
    微信公众号调用扫一扫
    JQuery :contains选择器,可做搜索功能,搜索包含关键字的dom
    【转】超全功能测试方法集锦——(通用黑盒功能:测试新人必收攻略)
    Oracle 查看表空间的大小及使用情况sql语句
    oracle数据库 参数open_cursors和session_cached_cursor详解!
    使用MITab操作MapInfo地图文件
  • 原文地址:https://www.cnblogs.com/scajy/p/11511417.html
Copyright © 2020-2023  润新知