【发布时间】:2022-03-25 21:41:41
【问题描述】:
在 Ansible 中,在一个角色中,我有这样的 vars 文件:
vars/
app1.yml
app2.yml
每个文件都包含特定于应用程序/网站的变量,如下所示:
name: app1
git_repo: https://github.com/philgyford/app1.git
# ...
理想情况下,如果任务事先不知道哪些应用程序具有可变文件,我希望最终得到一个名为 apps 的数组,如下所示:
apps:
- name: app1
git_repo: https://github.com/philgyford/app1.git
# ...
- name: app2
git_repo: https://github.com/philgyford/app2.git
# ...
即,将文件中的变量合并为一个。
我知道我可以像这样加载所有变量文件:
- name: Load var files
with_fileglob:
- ../vars/*.yml
include_vars: '{{ item }}'
但如果每个文件都有相同的变量名,它将覆盖之前的每组变量。我看不到加载变量并将它们放入apps 数组的方法。
如果这是使这样的事情成为可能的唯一方法,我愿意稍微重新安排一些事情。
【问题讨论】:
标签: ansible