I have a template file called main.conf.j2 and this is distributed to all of my servers. There additional server that need to have a single configuration that should include the configuration of the main.conf.j2 file and additional configuration – I have named the file extra.conf.j2
My question is if there is a way to import the main.conf.j2 file inside the extra.conf.j2? the reason is that in case of a changes in the main.conf.j2 I want to manage only a single file
main.conf.j2 – only in example
memory = {{memory.input}}
cpu = {{cpu.input}}
domain = {{domain.input}}
extra.conf.j2 – only in example
number.of.server = {{num_of_servers.input}}
< here I want to include the main.conf.j2>
###################################################### # canonical source: roles/foo/templates/main.conf.j2 # ###################################################### {% if inventory_hostname == 'extra.server.name.net' %} number.of.server = {{ num_of_servers.input }} {% endif %} memory = {{ memory.input }} cpu = {{ cpu.input }} domain = {{ domain.input }}That will render with one extra line on host extra.server.name.net but other than that identically on all your hosts (assuming those variable have the same value from each host's perspective of course).
# main.conf.j2
memory = {{ memory.input }} cpu = {{ cpu.input }} domain = {{ domain.input }}
# extra.conf.j2 number.of.server = {{ num_of_servers.input }} {% include 'main.conf.j2' %}That's it. You were within a few characters of the answer in your original question.