You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Salt Pillar中追加环境专属值而非覆写已有内容?

解决Salt Pillar追加环境专属密钥的问题

不需要拆分pillar再合并,有更简便的Jinja模板写法可以直接实现追加:

方法1:字符串拼接法

直接通过Jinja字符串拼接原有secrets和新密钥,确保换行正确:

secrets: "{{ salt['pillar.get']('secrets', '') + ('\n' if salt['pillar.get']('secrets') else '') }}dev_secret=value3"
  • 如果common.sls中的secrets已有内容,会自动在末尾添加换行再追加新密钥;
  • 如果secrets为空,则直接使用新密钥。

方法2:多行模板渲染法

如果需要保留多行字符串的格式,用Jinja循环遍历原有内容的每一行,再追加新行:

secrets: |
{%- for line in salt['pillar.get']('secrets', '').split('\n') %}
{{ line }}
{%- endfor %}
dev_secret=value3

{%- %}用来去除多余的空白字符,避免生成不必要的空行。

原有写法失效的原因

你之前的写法中,多行字符串块里的{{ salt['pillar.get']('secrets', '') }}可能因为模板渲染的空白处理,导致原有内容未正确输出;另外dev_secret前的多余缩进也会干扰最终格式,上述两种方法可以规避这类问题。

内容的提问来源于stack exchange,提问作者apasic

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 08:14:57