Ansible - 是否可以向库存内的主机添加标签?

riv*_*ar_ 4 ansible ansible-2.x ansible-inventory

正如主题所说,我的问题是是否可以向清单中描述的主机添加标签?

我的目标是能够在具有该特定标签的特定主机/主机组上运行 ansible-playbook,例如仅在带有标签“Env=test 和 Type=test”的服务器上运行

例如,当我运行剧本时:

ansible-playbook -i hosts test.yml --extra-vars "Env=${test} Type=${test}"
Run Code Online (Sandbox Code Playgroud)

我将在命令中传递标签,它只会在过滤后的主机上运行。

非常感谢!

更新:

或者,也许在动态库存中做类似的事情?https://docs.ansible.com/ansible/latest/dev_guide/developing_inventory.html#developing-inventory

[tag_Name_staging_foo]

[tag_Name_staging_bar]

[staging:children]
tag_Name_staging_foo
tag_Name_staging_bar
Run Code Online (Sandbox Code Playgroud)

Vla*_*tka 7

回答你的问题

是否可以向库存内的主机添加标签以在特定主机/主机组上运行 ansible-playbook?

不,标签仅适用于任务

当您将标签:属性应用于任务以外的结构时,Ansible 会处理标签属性以仅应用于它们包含的任务。在任务以外的任何地方应用标签只是一种方便,因此您不必单独标记任务。