ansible-playbook的tag標簽


ansible預置了5個特殊tag,分別為always、never(2.5版本中新加入的)、tagged、untagged、all

當我們把任務的tags的值指定為always時,那么這個任務就總是被執行,除非使用--skip-tags選項明確指定不執行對應的任務

---
- name: Add administrator user
  user:
    name: {{admin_user}}
    shell: /bin/bash
    state: present
- name: Config administrator password for administrator user
  user:
    name: {{admin_user}}
    password: {{admin_user_passwd}}
- name: Delete administrator user
  user:
    name: {{admin_user}}
    state: absent
  tag: delete_admin_user
- name: Modify root passwd
  user:
    name: root
    password: {{root_passwd}}
  tag: modify_root_pwd,always

當執行ansible-playbook --tags delete_admin_user test.yaml后,不但執行了delete_admin_user的標簽任務,還執行了擁有always標簽的任務。

如果不想執行標簽中包含always的任務,使用--skip-tags always選項,就會跳過所有包含always標簽的任務。

對於never標簽,其作用與always正好相反。

對於tagged、untagged、all三個特殊標簽,並非像always和never一樣作為標簽值存在,而是在調用標簽時使用

ansible-playbook --tags tagged test.yaml

上述命令表示只執行有標簽的任務,沒有任何標簽的任務不會執行。

ansible-playbook --skip-tags tagged test.yaml

上述命令表示跳過包含標簽的任務,即使擁有always標簽,也會跳過。

ansible-playbook --tags untagged test.yaml 

上述命令表示只執行沒有標簽的任務,但擁有always標簽的任務,仍然會被執行。

ansible-playbook --skip-tags untagged test.yaml

上述命令表示跳過沒有標簽的任務。

在調用標簽之前,如果要概覽playbook中都有哪些標簽,可以使用--list-tags選項。

參考文獻:http://www.zsythink.net/archives/2641/


免責聲明!

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



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