簡體   English   中英

Ansible Jinja2,格式化

[英]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=4indentfirst=False ),這些正是您所需要的:

searchguard.nodes_dn:
    {{ sg_nodes_dn | to_nice_yaml | indent }}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM