3

使用ansible-playbookcommand ,我们可以为清单中的所有主机执行 playbook,我有一个从网络服务器中删除缓存的 playbook。但我不应该删除特定机器上的缓存,除非开发人员要求这样做。

但是通过使用,ansible-playbook我无法从清单中选择特定的主机。但是我可以使用一些语法,ansible-playbook somebook.play -i hostname,但这会查找 DNS 条目并相应地执行,但不会检查库存文件。

另一种方法是为每个主机创建单独的清单文件,并根据开发人员请求的主机调用它们,我不知道有多少推荐的方式。

最后一种方法 AFAIK 是ansible.runner通过 Python 使用并在主机名上使用模式并调用 python 程序。

感谢您阅读我的长文。

除了这些,您是否知道在执行剧本时从清单中选择特定主机/主机组的任何其他方法?

我想知道任何其他方式,但只使用 ansible-playbook 和库存文件。

4

1 回答 1

7

但是通过使用,ansible-playbook我无法从清单中选择特定的主机。

是的,你可以 -- 执行ansible-playbook --help命令来显示帮助:

Usage: ansible-playbook playbook.yml

Options:

<--- cut --->

  -l SUBSET, --limit=SUBSET
                        further limit selected hosts to an additional pattern

<--- cut --->

如果你想知道什么是模式——有一个关于模式的帮助页面。

于 2017-04-12T11:19:09.710 回答