[英]Ansible Jinja2, formatting
所以目前我运行一个for循环来生成地址列表,这是循环:
sg_nodes_dn: "
{%- set nodes = [] %}
{%- for host in groups['elastic_nodes'] %}
{{- nodes.append('CN=%s,OU=Systems/DevOps,O=x x x,L=x,C=x' % hostvars[host]['elk_node_name']) }}
{%- endfor %}
{{- nodes -}}"
这很好用,但是我遇到的问题是将其格式化为j2模板时。
这是模板中的var:
searchguard.nodes_dn:
{{ sg_nodes_dn | to_nice_yaml }}
这样做的问题是,它将很好地打印第一行,但是第二行未使用yaml格式化,因此该服务将无法加载,其结果是。
searchguard.nodes_dn:
- CN=x.x-x.x,OU=Systems/DevOps,O=x x x,L=x,C=x
- CN=x.x-x.x,OU=Systems/DevOps,O=x x x,L=x,C=x
如何确保第二行格式正确? 我做了一些简短的阅读,并补充说:
#jinja2:trim_blocks: False
在文件的顶部,但仍不能解决问题,这里是否可以输入其他任何内容?
您可以使用Jinja2 indent
过滤器:
searchguard.nodes_dn:
{{ sg_nodes_dn | to_nice_yaml | indent(4, false) }}
或者只是使用默认参数( width=4
和indentfirst=False
),这些正是您所需要的:
searchguard.nodes_dn:
{{ sg_nodes_dn | to_nice_yaml | indent }}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.