執行ansible-playbook時可以使用--tags "tag1,tag2..." 或者 --skip-tags "tag1,tag2..."指定執行的tags或者指定不執行的tags ;
可以使用--list-tags查看playbook中有哪些tags會被執行
- name: test tags
hosts: localhost
gather_facts: no
tasks:- name: 1 no tags
debug: msg="have not tags." - name: 2 common tags
debug: msg="common tags."
tags: common - name: 3 always tags
debug: msg="always tags."
tags: always - name: 4 never tags
debug: msg="never tags."
tags: [ 'never', 'debug' ]
- name: 1 no tags
playbook: tags.yml play #1 (localhost): test tags TAGS: [] TASK TAGS: [always, common]
到ansible 2.5以后目前的tags有以下幾個:
always : 除非skip-tags指定這個標簽,否則該標記為always的task一直會執行; --tags always 只執行標記了always的tasks
never : 除非tags 指定了這個tag,否則都不會執行 ;--tags never 執行標記always和never的tasks
tagged : --tags tagged 執行所有有tags標簽的tasks,但不包括tags標簽是never的tasks
untagged : --tags untagged 執行所有沒有tags標簽的task和tags標簽為always的task;
--tags all :執行所有的tags標簽為非never的task,包括有tags標簽和無tags標簽的tasks
--tags 自定義的tag 執行tags為指定的標簽名的tasks和tags為always的tasks
如果執行命令ansible-playbook site.yml 時不指定tags,則會執行所有tags為非never的tasks
--skip-tags 自定義tag 執行所有非指定tag和非never的tasks