Ansible Jinja2模板问题:移除列表元素后空行且保持YAML格式
解决Ansible模板中to_nice_yaml导致的空行及缩进错误问题
问题场景
使用to_nice_yaml过滤器生成YAML列表后,输出中出现多余空行;尝试用{{ ... -}}抑制换行时,又导致后续resources节点缩进错误。
解决方案1:添加trim过滤器移除末尾换行
修改template.j2模板,在to_nice_yaml后添加trim过滤器,移除生成内容首尾的空白(包括末尾换行),再进行缩进:
storage: accessModes: {{ modes | to_nice_yaml | trim | indent(4) }} resources: requests: storage: 5Gi
解决方案2:改用yaml过滤器生成紧凑输出
yaml过滤器生成的YAML不会自动在末尾添加换行,替代to_nice_yaml后可直接避免空行问题:
storage: accessModes: {{ modes | yaml | indent(4) }} resources: requests: storage: 5Gi
验证效果
执行Playbook后,输出将不再有空行且缩进保持正确:
ok: [localhost] => msg: |- storage: accessModes: - ReadWriteOnce resources: requests: storage: 5Gi
内容的提问来源于stack exchange,提问作者Floren
相关产品推荐
相关产品推荐

