Ansible 2.7的template module允许禁用jinja2的trim_blocks
设置。
我要为blockinfile模块禁用此设置,但是找不到有关它的任何信息。我什至尝试以任何外观使用模板查找插件。
是否可以在blockinfile
的播放中禁用此功能?
我确实需要其他的空白控件。例如,考虑以下(简化和精简的)SSH配置文件模板:
{%- for host in groups.linux %}
{%- set vars = hostvars[host] %}
Host {{ vars.inventory_hostname_short }}
{#- add the fqdn as alias if present #}
{%- if host != vars.inventory_hostname_short %} {{ host }}{% endif %}
Hostname {{ vars.ansible_ssh_host }}
IdentityFile {{ vars.ansible_ssh_private_key_file }}
{% endfor %}
这使我可以控制条目之间的空行,并将内容(在这种情况下为fqdn)附加到前一行。启用trim_blocks
后,我需要在变量中连接字符串,还是有更好的方法来实现类似的目的?
答案 0 :(得分:1)
可以配置模板
> cat my_template.j2
#jinja2: trim_blocks:False
{%- for host in groups.linux %}
(continue)
并在 blockinfile
中使用它- blockinfile:
block: "{{ lookup('template', 'my_template.j2') }}"
(continue)