相关疑难解决方法(0)

在Ansible中,如何将来自单独文件的变量组合成一个数组?

在Ansible,在一个角色中,我有这样的vars文件:

vars/
    app1.yml
    app2.yml
Run Code Online (Sandbox Code Playgroud)

每个文件都包含特定于应用程序/网站的变量,如下所示:

name: app1
git_repo: https://github.com/philgyford/app1.git
# ...
Run Code Online (Sandbox Code Playgroud)

理想情况下,如果没有预先知道哪些应用程序具有可变文件的任务,我最终会得到一个apps如下所示的数组:

apps:
  - name: app1
    git_repo: https://github.com/philgyford/app1.git
    # ...
  - name: app2
    git_repo: https://github.com/philgyford/app2.git
    # ...
Run Code Online (Sandbox Code Playgroud)

即,它将文件中的变量合并为一个.

我知道我可以像这样加载所有变量文件:

- name: Load var files
  with_fileglob:
    - ../vars/*.yml
  include_vars: '{{ item }}'
Run Code Online (Sandbox Code Playgroud)

但是,鉴于每个文件具有相同的变量名称,它将覆盖每个先前的变量集.我看不到加载变量并将它们放入apps数组的方法.

如果这是制作这样的东西的唯一方法,我愿意稍微重新排列.

ansible

12
推荐指数
3
解决办法
1万
查看次数

标签 统计

ansible ×1