首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Ansible中,如何将独立文件中的变量组合到一个数组中?

在Ansible中,如何将独立文件中的变量组合到一个数组中?
EN

Stack Overflow用户
提问于 2016-02-22 13:01:39
回答 7查看 40.1K关注 0票数 24

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

代码语言:javascript
运行
复制
vars/
    app1.yml
    app2.yml

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

代码语言:javascript
运行
复制
name: app1
git_repo: https://github.com/philgyford/app1.git
# ...

理想情况下,在不事先知道哪些应用程序有可变文件的情况下,我想得到一个名为apps的数组,如下所示:

代码语言:javascript
运行
复制
apps:
  - name: app1
    git_repo: https://github.com/philgyford/app1.git
    # ...
  - name: app2
    git_repo: https://github.com/philgyford/app2.git
    # ...

它将文件中的变量组合为一个。

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

代码语言:javascript
运行
复制
- name: Load var files
  with_fileglob:
    - ../vars/*.yml
  include_vars: '{{ item }}'

但是,如果每个文件都有相同的变量名,它将覆盖以前的每一组变量。我看不到加载变量并将它们放入apps数组的方法。

如果这是让这样的事情成为可能的唯一方法的话,我愿意稍微重新安排一些事情。

EN

Stack Overflow用户

发布于 2018-10-15 21:59:40

从Ansible v2.0开始,您可以这样做:

代码语言:javascript
运行
复制
- name: merging hash_a and hash_b into hash_c
  set_fact: hash_c="{{ hash_a|combine(hash_b) }}"

在Ansible filters下检查更多内容-组合散列/字典(来自Jinja2)

票数 1
EN
查看全部 7 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35554415

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档