The template looks like this:
solr.replication.master=
{% if ansible_eth0.ipv4.address == servermaster.eth0 %}
false
{% else %}
true
I had the same issue. I solved it by adding
{{''}}
to the end of the line, for example:
solr.replication.master={% if ansible_eth0.ipv4.address == servermaster.eth0 %}false{% else %}true{% endif %}{{''}}
This inserts an empty string literal, with the side effect that whitespace is not stripped.
Add the following line to your template at first position:
#jinja2: trim_blocks:False
I believe using a ternary
filter might help.
solr.replication.master={{ (ansible_eth0.ipv4.address == servermaster.eth0) | ternary('false', 'true') }}
solr.replication.slave=false
As workaround you can add to your template
{% raw %}{% endraw %}
Google brought me here, so leaving this answer for prosperity's sake.
As you mentioned -/+
whitespace tags are not honored, nor are line macros enabled (at least not %%
or #
or ##
).
trim_blocks
is enabled in ansible. The only thing that I found that does work, is that trim_blocks
ignores only the first newline
For your example, just adding an extra newline should be sufficient
solr.replication.master={% if ansible_eth0.ipv4.address == servermaster.eth0 %}false{% else %}true{% endif %}
solr.replication.slave=false