I don't know of a way to include one .j2 template into another, but you
can have parts of your main.conf.j2 render only on a specific host, or
only on hosts in specific groups. This achieves your goal of only having
to manage a single file. (Also, I like to include a note to myself at
the top of such files indicating where they came from.) Behold:
######################################################
# 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).
On 1/22/23 1:54 AM, dudu.c...@gmail.com wrote:
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>
--
You received this message because you are subscribed to the Google Groups "Ansible
Project" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to ansible-project+unsubscr...@googlegroups.com.
To view this discussion on the web visit
https://groups.google.com/d/msgid/ansible-project/07d590f4-d81f-fb72-14f9-e3f7bdf401db%40gmail.com.