【发布时间】:2017-05-03 21:21:07
【问题描述】:
我正在使用 SaltStack,并且正在尝试在另一个 Pillar 配置中重用嵌套字典的值。这是我正在尝试做的一个简单示例:
假设我有pillar/app/common.sls,其中包含以下项目:
app:
lookup:
custom1: 'change the default'
custom2: 'change the default'
service1:
value1: 'foo'
value2: 'bar'
list1:
- apple
- banana
value3: 'xen'
我的目标是在同一台机器上提供一项新服务(YAML 密钥为 service2),但设置方式使我不会两次写入值(保留它)干燥的!)。我还想覆盖其中一个参数的值。本质上,我是在尝试将一根支柱延伸到另一根支柱上。
最终结果将是:
app:
lookup:
custom1: 'change the default'
custom2: 'change the default'
service1:
value1: 'foo'
value2: 'bar'
list1:
- apple
- banana
value3: 'xen'
service2:
value1: 'foo'
value2: 'bar'
list1:
- apple
- banana
value3: 'future'
我用pillar/app/someserver.sls 尝试了以下操作:
{% import_yaml "app/common.sls" as common %}
app:
service2:
{{ common.app.service1 }}
value3: 'future'
我发现{{ common.app.service1 }} 成功渲染,但它不喜欢额外的value3: 'future',这是我尝试覆盖来自common.sls 的value3。
我在 Ubuntu Xenial 16.04.2 上使用 Salt 2016.11.4。任何想法都会有所帮助。谢谢!
【问题讨论】:
标签: salt-stack