运行 使用 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]"
团队,
基本上,目标是 运行 仅在主机组中 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
是一个组,那么您可以通过执行
ansible-playbook -i inventory_file playbook.yml --limit "hosts_gpu"
或者您可以使用 Python 列表切片表示法将执行限制为组中的前三台主机。
ansible-playbook -i inventory_file playbook.yml --limit "hosts_gpu[0:3]"