我有一个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)
不再抛出异常,现在我陷入困境,必须研究如何继续.
我想根据分布创建一个变量,以下代码不起作用,我不知道为什么:
- 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)