Ansible 标签

2024 年 8 月 29 日 | 阅读 2 分钟

如果你有一个大型 playbook,能够只运行其中的一部分而不是运行整个 playbook 会非常有用。 Ansible 支持为此目的的标签属性。

当你在事物上应用标签时,你可以通过添加命令行选项来控制它们是否被执行。

当您执行 playbook 时,您可以根据标签以两种方式过滤任务,例如

  1. 在命令行中使用 -tags-skip-tags 选项。
  2. 在 Ansible 配置设置中使用 TAGS_RUNTAGS_SKIP 选项。

在 Ansible 中,标签可以应用于许多结构,但其最简单的用法是用于单个任务。 让我们看一个用不同标签标记两个任务的示例,例如

如果你想运行一个很长的 playbook 的 configurationpackages 部分,那么你可以在命令行使用 -tags 选项。

如果你想运行一个 playbook 而不执行某些已标记的任务,那么你可以使用 -skip-tags 命令行选项。

标签重用

我们可以将相同的标签应用于多个任务。 通过使用 "--tags" 命令行选项,所有具有该标签名称的任务都将被运行。

例如:在下面的例子中,我们对几个任务使用一个标签 "ntp",例如

特殊标签

"always" 是一个独特的标签,它总是会运行一个任务,除非明确跳过 (--skip-tags always)

例如

2.5 版本中的新功能

这里是另一个独特的标签 "never",它会阻止任务运行,除非明确请求该标签。

例如

在上面的例子中,该任务只会在显式请求 "never" 或 "debug" 标签时运行。

以下是标签的另外三个特殊关键字

"tagged" 只运行已标记的任务,

"untagged" 只运行未标记的任务,以及

"all" 分别运行所有任务。

默认情况下,Ansible 运行就像指定了 "--tags all" 一样。


下一个主题Ansible Galaxy