标签
tags
1.只执行task2
---
- hosts: testB
remote_user: root
tasks:
- name: task1
file: path=/testdir/file1 state=touch
tags: t1
- name: task2
file: path=/testdir/file2 state=touch
tags: t2
- name: task3
file: path=/testdir/file3 state=touch
tags: t3
ansible-playbook --tags=t2 5.yml
2.不执行t2
ansible-playbook --skip-tags=t2 5.yml
3.tags的三种格式
---
- hosts: testB
remote_user: root
tasks:
- name: task1
file: path=/testdir/file1 state=touch
tags: t1 第一种
- name: task2
file: path=/testdir/file2 state=touch
tags: 第二种
- t2
- name: task3
file: path=/testdir/file3 state=touch
tags: ['t3'] 第三种
4.tags的语法
第一种
---
- hosts: testB
remote_user: root
tasks:
- name: install httpd
tags: httpd,package
yum: name=httpd state=latest 安装最新版
- name: start httpd
tags: httpd,service
service: name=httpd state=started
第二种
继承关系
---
- hosts: testB
remote_user: root
tags: httpd
tasks:
- name: install httpd
tags:
- package
yum: name=httpd state=latest
- name: start httpd
tags: ['service']
service: name=httpd state=started
查看有哪些标签
ansible-playbook --list-tags 7.yml
always
不管执行哪部分 always总会执行
---
- hosts: testB
remote_user: root
tasks:
- name: task1
file: path=/testdir/file1 state=touch
tags: t1,always
- name: task2
file: path=/testdir/file2 state=touch
tags:
- t2
- name: task3
file: path=/testdir/file3 state=touch
tags: ['t3']
不执行always 所有alway都被跳过
== 只跳过t1的always==
---
- hosts: testB
remote_user: root
tasks:
- name: task1
file: path=/testdir/file1 state=touch
tags: t1,always
- name: task2
file: path=/testdir/file2 state=touch
tags:
- t2
- always
- name: task3
file: path=/testdir/file3 state=touch
tags: ['t3']
2.5版本以后的never标签
never和always对应
---
- hosts: testB
remote_user: root
tasks:
- name: task1
file: path=/testdir/file1 state=touch
tags: t1,always
- name: task2
file: path=/testdir/file2 state=touch
tags:
- t2
- always
- name: task3
file: path=/testdir/file3 state=touch
tags: never
tagged
只执行由标签的任务
ansible-playbook --tags tagged 6.yml
跳过包含标签的任务,即使是always
ansible-playbook --skip-tags tagged 6.yml
untagged
只执行没有标签的任务,always会执行
ansible-playbook --tags untagged 6.yml
跳过没有标签的任务
ansible-playbook --skip-tags untagged 6.yml
all
所有任务都会执行,默认情况下是all