本文概述
- 标签重用
- 特殊标签
- 2.5版的新功能
将标记应用于事物时,可以通过添加命令行选项来控制它们是否执行。
执行剧本时,可以通过两种方式根据标签过滤任务,例如:
- 在命令行上,使用-tags或-skip-tags选项。
- 在Ansible配置设置中,带有TAGS_RUN和TAGS_SKIP选项。
tasks:
- yum:
name: "{{ item }}"
state: present
loop:
- httpd
- memcached
tags:
- packages- template:
src: templates/src.j2
dest: /etc/foo.conf
tags:
- configuration
如果要运行非常长的剧本的配置和程序包部分,则可以在命令行上使用-tags选项。
ansible-playbook example.yml --tags "configuration, packages"
而且,如果你要运行没有特定标记任务的剧本,则可以使用-skip-tags命令行选项。
ansible-playbook example.yml --skip-tags "packages"
标签重用我们可以将同一标签应用于多个任务。通过使用“ – tags”命令行选项,将运行具有该标签名称的所有任务。
例如:在下面的示例中,我们将一个标签“ ntp”用于多个任务,例如:
---
# file: roles/common/tasks/main.yml- name: be sure ntp is installed
yum:
name: ntp
state: present
tags: ntp- name: be sure ntp is configured
template:
src: ntp.conf.j2
dest: /etc/ntp.conf
notify:
- restart ntpd
tags: ntp- name: be sure ntpd is running and enabled
service:
name: ntpd
state: started
enabled: yes
tags: ntp
特殊标签“始终”是一个唯一的标签,它将始终运行任务,除非特别跳过(始终– skip-tags)
例如:
tasks:
- debug:
msg: "Always runs"
tags:
- always- debug:
msg: "runs when you use tag1"
tags:
- tag1
2.5版的新功能这是另一个“从不”的唯一标记,除非有特殊要求,否则它将阻止任务运行。
【ansible使用标签】例如:
tasks:
- debug: msg="{{ showmevar }}"
tags: [ never, debug ]
在上面的示例中,仅当显式请求“从不”或“调试”标记时,任务才会运行。
以下是标签的另外三个特殊关键字:
“已标记”仅运行已标记的,
“未加标签”,仅在未加标签的情况下运行,并且
“全部”分别运行所有任务。
默认情况下,Ansible就像运行“ – tags”一样被运行。
推荐阅读
- ansible命令备忘单
- ansible变量
- ansible使用角色(Role)
- ansible塔(Tower)
- ansible剧本(Playbook)
- ansible Ad-Hoc临时命令
- 在linux安装ansible
- ansible架构
- ansible工作流