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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM