【发布时间】:2018-04-09 12:41:59
【问题描述】:
我正在尝试编写一个 Jinja 宏,它允许我对文件配置进行模板化。配置文件本身需要某些设置才能按顺序显示。我希望能够将 dict 作为可选变量传递给我的宏,以便我可以覆盖配置文件中的默认设置以及传递非默认设置。
例如,我的默认设置可能如下所示:
{% set default = {
'default_setting': 'default_value',
'another_default_setting': 'another_default_value',
} %}
还有我的新设置:
{% set new = {
'default_setting': 'new_value',
'new_setting': 'another_new_value',
} %}
然后在我的模板中:
{% set settings = salt['slsutil.merge'](default, new, 'overwrite') %}
{% for setting, value in settings.items() %}
{{ setting }} = {{ value }};
{% endfor %}
应该输出什么:
default_setting = new_value;
another_default_setting = another_default_value;
new_setting = another_new_value;
【问题讨论】:
标签: python jinja2 salt-stack