使用ansible-playbook
命令,我们可以为库存中的所有主机执行playbook,并且我有一个从web服务器中删除缓存的手册。但我不应该删除特定计算机上的缓存,除非开发人员要求这样做。
但是使用ansible-playbook
我无法从广告资源中挑选特定主机。但我可以使用一些语法ansible-playbook somebook.play -i hostname,
,但这会查找DNS条目并相应地执行,但不会检查库存文件。
另一种方法是为每个主机创建单独的库存文件,并按开发人员按请求的主机调用它们,我不知道这是多少推荐的方式。
最后一个方法AFAIK通过Python使用ansible.runner
并在hostname上使用模式并调用python程序。
感谢您阅读我的长篇文章。
除此之外,您是否知道在执行剧本时从库存中选择特定主机/主机组的其他方法?
我想知道其他任何方式,但只使用ansible-playbook和库存文件。
答案 0 :(得分:5)
但是使用
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 --->
如果您想知道模式是什么 - patterns上有一个帮助页面。