我有多个不同的应用程序运行在不同的服务器上。
app-1在devserver-1和devserver-2上运行(在集群模式下)app-2在devserver-3和devserver-4上运行(在集群模式下)app-3 (以独立模式运行)在devserver-1上运行。在我的dev-intentory文件中,我列出了我所有的4个devserver。
现在,我想写一个参数化的剧本,当我提供app_name-变量时,它可以“知道”它必须在哪个主机上运行。
目前,我有一个var文件,其中包含如下内容:
# vars/apps.yml
apps:
app-1:
servers:
dev:
- devserver-1
- devserver-2像这样的剧本:
# playbook.yml
vars_files:
- vars/apps.yml
hosts: "{{ apps[app_name].servers[stage] | join(',') }}"但出于各种原因,我对这种配置并不满意,我希望避免使用vars_files (而不是使用角色/include_vars)。
那么,在不使用vars_files的情况下,如何确定游戏手册的主机(在多个应用程序之间共享)
发布于 2018-09-25 13:01:44
将它们分组到您的主机文件中,如下所示:
[app-1]
devserver-1
devserver-2
[app-2]
devserver-3
devserver-4
[app-3]
devserver-1然后让您的剧本使用hosts行中的变量:
- hosts: "{{ app_name }}"(老实说,我不记得你是否能在一个组名中有一个-。(试试吧。)
https://stackoverflow.com/questions/52498246
复制相似问题