When using ansible template module, you may see the trailing newline is stripped by blocks, like # template.j2 a = {% if true %}1{% endfor %} b = 2 the render will be like a=1b=2 The newline character after `a=1` is stripped. The root cause comes from jinja2's trim_blocks feature. Ansible enabled this feature. If you want to disable it, just add `#jinja2: trim_blocks: False` to the j2 template file. This is a feature in Ansible, and I do not think they will fix/change this. But we need take care of this when using the template module. More info please check[0][1] [0] https://github.com/ansible/ansible/issues/16344 [1] http://jinja.pocoo.org/docs/dev/api/#jinja2.Environment -- Regards, Jeffrey Zhang Blog: http://xcodest.me