[英]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.