Ansible—— 27. tag

當任務存在標籤以後,就可以在執行playbook時,藉助標籤,指定執行哪些任務,或者指定不執行哪些任務了。

---
- hosts: test70
  remote_user: root
  tasks:
  - name: task1
    file:
      path: /testdir/t1
      state: touch
    tags: t1
  - name: task2
    file: path=/testdir/t2
          state=touch
    tags: t2
  - name: task3
    file: path=/testdir/t3
          state=touch
    tags: t3
ansible-playbook --tags=t2 testtag.yml
ansible-playbook --skip-tags='t2' testtag.yml

tag可以指定多個標籤

---
- hosts: test70
  remote_user: root
  tasks: 
  - name: task1
    file: 
      path: /testdir/t1
      state: touch
    tags:
      - t1
  - name: task2
    file: path=/testdir/t2
          state=touch
    tags: ['t2']

語法一:

tags:
 - testtag
 - t1

語法二:

tags: tag1,t1

語法三:

tags: ['tagtest','t2']

當執行’ansible-playbook --tags=httpd testhttpd.yml’,install httpd package和start up httpd service兩個任務都會執行。

---
- hosts: test70
  remote_user: root
  tasks:
  - name: install httpd package
    tags: httpd,package
    yum:
      name=httpd
      state=latest
 
  - name: start up httpd service
    tags: httpd,service
    service:
      name: httpd
      state: started

play中的所有任務都有共同的httpd標籤,可以把httpd標籤提取出來,當tags寫在play中而非task中時,play中的所有task會繼承當前play中的tags,而上例中,兩個任務都會繼承httpd標籤,同時還有擁有自己的標籤。

---
- hosts: test70
  remote_user: root
  tags: httpd
  tasks:
  - name: install httpd package
    tags: ['package']
    yum:
      name=httpd
      state=latest
 
  - name: start up httpd service
    tags:
      - service
    service:
      name: httpd
      state: started

指定多個標籤,用逗號隔開
ansible-playbook --tags package,service testhttpd.yml

概覽標籤
ansible-playbook --list-tags testhttpd.yml

特殊標籤:tagged、untagged、all
只執行有標籤的任務,沒有任何標籤的任務不會被執行
ansible-playbook --tags tagged testtag.yml

跳過包含標籤的任務,即使對應的任務包含always標籤,也會被跳過。ansible-playbook --skip-tags tagged testtag.yml

執行沒有標籤的任務,但是如果某些任務包含always標籤,那麼這些任務也會被執行。
ansible-playbook --tags untagged testtag.yml

跳過沒有標籤的任務
ansible-playbook --skip-tags untagged testtag.yml

————Blueicex 2020/3/27 13:11 [email protected]

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章