在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 ×1