标签
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
Ansible Playbook 标签使用详解
本文详细介绍了Ansible Playbook中标签(tags)的使用方法,包括不同格式的标签定义、如何通过标签选择执行特定任务、排除特定任务以及always和never标签的特殊用法。同时,还讲解了如何利用标签进行任务的筛选和执行控制,帮助读者更灵活地管理和运行Playbook。
205

被折叠的 条评论
为什么被折叠?



