运行 使用 ansible 在组中有限数量的主机上执行任务

run a task on limited number of hosts in a group using ansible

团队,

基本上,目标是 运行 仅在主机组中 1-10 的 N 个节点上执行任务。 试图看看什么是实现这一目标的最佳可行方法。有什么见解吗?

这是我对主机参数的尝试,但任务正在所有主机上执行。

我在一个组中有 10 个主机 hosts_gpu 但我想 运行 只在 1-3 上执行任务。

ansible-playbook -i hosts_gpu[1:3] test.yml

输出:

all hosts affected

预计

host1
host2
host3

正如 @Mamun 已经提到的,您可以使用 --limit(或 -l)选项将剧本执行限制到特定主机。

ansible-playbook -i inventory_file playbook.yml --limit "host1:host2:host3"

如果 hosts_gpu 是一个组,那么您可以通过执行

来限制 playbook
ansible-playbook -i inventory_file playbook.yml --limit "hosts_gpu"

或者您可以使用 Python 列表切片表示法将执行限制为组中的前三台主机。

ansible-playbook -i inventory_file playbook.yml --limit "hosts_gpu[0:3]"