标签基本上是附加到任务、角色、戏剧等的元数据。使用标签具有节省时间和简化运行和调试剧本的任务的巨大优势。它还使脚本更有条理和健壮。

你涵盖什么?

本指南解释了如何在 Ansible 剧本中使用标签。我还看到了一些基本示例,展示了标签可以根据需要执行的操作。

你需要什么?

与之前的实验一样,运行本教程中显示的示例需要满足以下要求:

2. 你应该对Ansible的用途和如何创建playbook有一个基本的了解(当然你需要知道什么是playbook)。

如果你刚刚开始学习 Ansible,我建议先学习 Vagrant 以及如何使用它来搭建一个基本的本地测试环境。在设置一个由控制器节点和两个目标节点组成的基础实验室后,您可以运行该示例。

通常您可能想要运行剧本的特定部分而不是整个剧本。这对于非常大的脚本非常有用。在这种情况下,标签在剧本中用于运行或跳过任务。这是通过两步方法完成的:

1. 将需要的标签添加到目标任务中。

2. 根据选项卡选项运行或跳过任务。

可以为任务、块、角色或整个剧集定义标签。您很快就会在后面的示例中看到,“tags”关键字用于定义标签。

在最基本的形式中,一项任务可以有一个或多个标签。同样,公共标签可以链接到多个任务。例如,考虑以下剧本:

1. 第一个任务只有一个标签,而其他任务有多个标签。

2. “ubuntu”标签是与所有四个任务关联的公共标签。

如果您对多个任务使用标签(标签重用),则链接到该标签的所有任务都将运行。为此,请在命令行中指定“–tags”标志。

假设您运行了一次上一个剧本。在这种情况下,您应该按以下方式运行您的剧本 (my-playbook.yml):

如果你想跳过任务的执行,Ansible 提供了“–skip-tags”参数。 剧本的其余部分正常运行。在前面的例子中,让我们忽略升级系统的任务(任务:2)。为此,将“ansible-playbook”命令更改为:

Ansible 有两个保留标签用于两个特定目的。这些是“从不”和“总是”标签。 “always”标签的目的是始终运行与其链接的任务。 “从不”标签与“总是”标签相反,后者会跳过与其链接的任务。以下示例演示了这一点。

在之前的剧本中,第一个任务设置为始终运行,但第二个任务设置为从不运行。

如果要跳过标记为“始终”的任务,则必须在命令行中将此行为明确指定为“–skip-tags always”。之前的剧本允许我们跳过第一个任务。

拥有结构良好的剧本对于自动化过程的灵活性很重要。与许多其他方法一样,Ansible 提供标签来实现此功能。