目前我有一个大的var文件(vars / apps.yml),我的所有剧本都像这样:
name: my playbook
vars_files:
- vars/apps.yml
roles:
- somerole
这可行,但是现在我想更改设置。当我的apps.yml
变得又大又混乱时,我想将其拆分为多个文件(每个应用一个文件)。因此,我需要将所有个vars文件加载到我的剧本中。 可以一次更改所有剧本,但我不想每次添加新的var文件时都更改所有剧本。
我的1.尝试是拥有多个yml文件以及一个apps.yml
,其中包括所有其他文件-因此,我不必更改我的剧本中的任何内容。
遗憾的是,var文件不支持include。
我的2.尝试是替换
vars_files:
- vars/apps.yml
使用
include_vars:
dir: vars
但这也失败了,因为include_vars
仅在任务级别而不是在剧本级别受支持。
所以现在我不知道如何在剧本级别动态加载多个var文件。
编辑:
由于有些困惑,这是我尝试执行的完整剧本(使用include_vars):
- name: debug
hosts: localhost
include_vars:
dir: vars
roles:
- apache
这导致ERROR! 'include_vars' is not a valid attribute for a Play
正如here所述,include_vars
仅在任务下可用。