tags的定义
tags 可以让你在执行playbook的时候,有选择地执行某些任务,因此 tags 是 tasks 下的关键词
ansible-playbook test.play <--tags-args>
tags的参数
- –tags=tag_name 执行具有 tag_name 任务
- –skip-tags=tag_name 忽略具有 tag_name 任务
- –list-tags 输出所有
tag_name 内置值 :
- tagged 有tag的task,表示执行具有标记的任务
- untagged 没有tag的task,表示执行不具有标记的任务
- all 所有task,表示执行所有任务
tags的内置标记
- always 总是执行某个 task
- never 永远不执行某个 task
tags 的位置
位于play或者tasks都可以,本身具有继承属性,也就是tasks里的tags会继承play的tags
---
- hosts: localhost
remote_user: zyh
tags: father
tasks:
- name: test tag son
tags: son,children
shell: echo "son is here!" > ~/son.log
- name: test tag daughter
tags: daughter,children
shell: echo "daughter is here!" > ~/daughter.log
ansible-playbook test.play --tags=son # 只会生成 son.log
ansible-playbook test.play --tags=father # 因继承机制,会生成 son.log 和 daughter.log
ansible-playbook test.play --tags=children # 因都含有,同样会生成 son.log 和 daughter.log