Ansible 仅运行带有特定标记或未标记的任务

Ansible 仅运行带有特定标记或未标记的任务,ansible,Ansible,在本剧本中: -主机:所有 任务: -名称:任务A 调试:msg=“任务A” 标签: -A -名称:任务B 调试:msg=“任务B” 标签: -B -名称:未标记任务 调试:msg=“未标记的任务” 我想使用标记A和未标记的任务运行任务 我知道--skip tags选项,但这只是一个简化的示例。 我的用例是针对一个非常复杂的剧本,其中有许多标签和角色,任务具有不同的标签,以及标记任务和未标记任务之间的相互依赖性。长话短说,我唯一的“干净”选项是只运行指定的标记和那些未标记的标记 有没有一种方法

在本剧本中:

-主机:所有
任务:
-名称:任务A
调试:msg=“任务A”
标签:
-A
-名称:任务B
调试:msg=“任务B”
标签:
-B
-名称:未标记任务
调试:msg=“未标记的任务”
我想使用标记
A
和未标记的任务运行任务

我知道
--skip tags
选项,但这只是一个简化的示例。 我的用例是针对一个非常复杂的剧本,其中有许多标签和角色,任务具有不同的标签,以及标记任务和未标记任务之间的相互依赖性。长话短说,我唯一的“干净”选项是只运行指定的标记和那些未标记的标记

有没有一种方法可以调用ansible playbook,以便它只运行特定的标记和未标记的任务?
我正在使用ansible 2.9.6,这确实是可能的:

例如,如果您只想运行“配置”和 “包”是很长的剧本的一部分,您可以使用--tags选项 在命令行上:

ansible playbook example.yml--标记“配置、包”

资料来源:

以及:

标签还有另外3个特殊关键字:
标记的
未标记的
all
,分别运行带标记、未标记和所有任务

资料来源:

因此,您的解决方案是:

ansible-playbook --tags "untagged,A" playbook.yml