禁用“ blockinfile”模块的“ trim_blocks”

时间:2019-04-27 09:28:49

标签: ansible jinja2

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后,我需要在变量中连接字符串,还是有更好的方法来实现类似的目的?

1 个答案:

答案 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)