如何在Ansible中为特定数量的主机运行命令

50次阅读
没有评论

问题描述

在使用Ansible时,有一个问题是如何在主机组中限制运行命令的主机数量。他的清单文件中有以下主机组:

[primary]
host1
host2
[standby]
host3
host4

他的.yml文件中有以下配置:

---
- hosts: primary
  roles:
    - automation

例如,他想在只有host2上运行以下命令:ansible-playbook -i /path test.yml --tags automation。他应该怎么做?

解决方案

请注意以下操作注意版本差异及修改前做好备份。

方案1

使用--limit选项选择主机的子集来运行命令:

ansible-playbook -i /path test.yml --tags automation --limit host2

根据ansible-playbook文档的描述:

进一步限制所选主机的额外模式

方案2

请注意,这些选项可能会因版本而异。
还有其他一些选项可以限制主机的数量,例如:
--limit 'standby,primary':限制为standbyprimary主机组的主机。
--limit 'standby:!host3':限制为standby主机组中除host3之外的主机。
请根据您的具体需求选择适当的选项。

正文完