Including Jinja2 Templates

Jinja2 templates can use the {% include %} directive to include file fragments which might be common to many configuration files.

Use the “jinja2_include” suffix for file fragments you will include.

/var/lib/bcfg2/Cfg/foo/foo.jinja2

[global]
setting1 = true
setting2 = false

{% for x in metadata.groups %}{% include x + '.jinja2_include' ignore missing %}
{% endfor %}

/var/lib/bcfg2/Cfg/foo/group1.jinja2_include

[group1]
setting3 = true
setting4 = false

/var/lib/bcfg2/Cfg/foo/group3.jinja2_include

[group3]
setting7 = true
setting8 = false

Output

[global]
setting1 = true
setting2 = false

[group1]
setting3 = true
setting4 = false

[group3]
setting7 = true
setting8 = false