小编San*_*och的帖子

在Python中加载与Jinja2嵌套的YAML

我有一个YAML文件(all.yaml),如下所示:

...
var1: val1
var2: val2
var3: {{var1}}-{{var2}}.txt
...
Run Code Online (Sandbox Code Playgroud)

如果我像这样在Python中加载它:

import yaml

f = open('all.yaml')
dataMap = yaml.safe_load(f)
f.close()
print(dataMap["var3"])
Run Code Online (Sandbox Code Playgroud)

输出{{var1}}-{{var2}}.txt而不是val1-val2.txt.

是否可以用值替换嵌套变量?

我试着加载它:

import jinja2
templateLoader = jinja2.FileSystemLoader( searchpath="/path/to/dir" )
templateEnv = jinja2.Environment( loader=templateLoader )
TEMPLATE_FILE = "all.yaml"
template = templateEnv.get_template( TEMPLATE_FILE )
Run Code Online (Sandbox Code Playgroud)

不再抛出异常,现在我陷入困境,必须研究如何继续.

python jinja2 pyyaml computed-properties

6
推荐指数
2
解决办法
6310
查看次数

Ansible 根据条件创建变量

我想根据分布创建一个变量,以下代码不起作用,我不知道为什么:

- name: Get Release
  vars: release: xenial
  when: (ansible_distribution_release == 'qiana') or 
        (ansible_distribution_release == 'rebecca') or 
        (ansible_distribution_release == 'rafaela') or 
        (ansible_distribution_release == 'rosa')
Run Code Online (Sandbox Code Playgroud)

ansible ansible-playbook

2
推荐指数
1
解决办法
602
查看次数