【发布时间】:2019-03-03 19:52:21
【问题描述】:
我正在编写一个 ansible playbook 以将一些服务配置部署到不同的区域,并且我有 include_vars 导入的初始变量,如下所示:
common: [...]
us_local: [...]
uk_local: [...]
us_global: [...]
uk_global: [...]
基本上,我想通过包含来自common 的变量、所有全局配置以及该区域的本地配置来生成配置,使用在hosts.yaml 中定义的{{ site }} 变量。
例如,如果部署的主机是我们,那么我想使用common,us_local,us_global,uk_global。
我将使用 jinja2 模板生成最终配置,据我了解,最简单的方法是创建另一个名为 current_site_local 的变量并将 {{ site }}_local 中的所有内容复制到其中,以便以后可以直接引用它在模板内。但是,我无法通过 set_facts 使其正常工作。
任何帮助将不胜感激。
更新:
我使用了以下语法并且它有效:
- name: generate curr_site_local
set_fact:
current_site_local: '{{ vars[site + "_local"] }}'
【问题讨论】:
标签: ansible ansible-facts