我希望做类似的事情:
vars:
foo: 'bar'
bar: 'foo'
foo_bar: if '{{ foobar }}' == "bar" then "baz" else "zap
但是对于我的生活,我无法弄明白这样做的jinja模板。我还希望用户能够使用foo_bar
在命令行上分配--extra-vars
。
答案 0 :(得分:0)
最干净的解决方案是使用带有默认值的字典:
vars:
foo: 'bar'
bar: 'foo'
foo_bar_dict:
bar: 'baz'
foo_bar: "{{ foo_bar_dict[foobar] | default('zap') }}"
现在,如果foobar == 'baz'
获得了正确的结果,并且它没有默认(否则)为" zap"。最后,如果我在命令行--extra-vars "foo_bar=zip" then that overrides every thing and
foo_bar == zip`。