在剧本级别动态包含var文件

时间:2018-08-20 15:00:36

标签: ansible

目前我有一个大的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仅在任务下可用。

0 个答案:

没有答案