我正在生成配置文件,我希望它们是缩进的.我从一个简单的python程序调用时正确渲染的Jinja2模板开始.当我从ansible调用它时,除了循环的第一行之外,我将获得2个额外的空格.生成像YAML和python这样的东西真的很痛苦.我已经把注释行作为for块的第一行来解决这个问题......
这是一个非常简单的YAML生成器示例:
剧本电话:
- name: generate bgp vars file, put in includes directory
local_action: template src={{ role_dir }}/templates/bgp_vars.j2 dest={{ incvar_dir }}/bgp_vars.yaml
run_once: true
Run Code Online (Sandbox Code Playgroud)
模板部分:
dc_route_reflectors:
{% for dc in SH_dcs %}
# dc is "{{ dc }}"
{{ dc }}:
{% for host in groups[bgpgroupname] if dc == hostvars[host].MYDC %}
- "{{ hostvars[host].MAIN_MYADDR }}"
{% endfor %}
{% endfor %}
Run Code Online (Sandbox Code Playgroud)
渲染输出:
dc_route_reflectors:
# dc is "pnp"
pnp:
- "10.100.16.3"
- "10.100.32.3"
# dc is "sgs"
sgs:
- "10.8.0.3"
- "10.8.16.3" …Run Code Online (Sandbox Code Playgroud)