【发布时间】:2021-02-28 05:18:38
【问题描述】:
我在 yaml 文件和 jinja2 模板中有如下变量。
#consul_common.yml
preprod:
config_token: "SomeTestToken"
#config.env.j2
service_config_token={{ config_token }}
剧本如下:
---
- hosts: all
gather_facts: yes
tasks:
- include_vars: consul_common.yml
- set_fact:
config_token: "{{ (deploy_environment | lower) }}['config_token']"
- debug:
var: "{{ config_token }}"
- template:
src: config.env.j2
dest: /apps/account-service/config.env
当我运行传递额外环境变量 deploy_environment=PREPROD 的剧本时,调试会给出正确的变量值,即“SomeTestToken”
但是当它在 jinja2 模板中被模板化时,这就是我在 /apps/account-service/config.env 中得到的内容。
service_config_token=preprod['consul_config_token']
我期待的内容是:service_config_token=SomeTestToken
用这个"{{ (deploy_environment | lower)['config_token'] }}" 试过了,也没用。
【问题讨论】: