情况:我们有多个盐配方,其中某些柱配置选项在我们的环境中是相同的。例如,它们为上游服务使用相同的URL。我们希望避免在多个支柱位置重复这些值(我们需要一个单一的事实点),但我们不想以共享支柱键的方式编写公式(正交性对灵魂有益)。

在我看来,执行此操作的正确方法是使用一个具有“共享”值的支柱文件,并将其从那里导入到特定于公式的支柱文件中的适当位置。例如:

# pillar/shared.sls
upstream: https://example.com/youarehere

# pillar/formula1.sls
{%- from shared import upstream %}
formula1:
  upstream_uri: {{ upstream }}

# pillar/formula2.sls
{%- from shared import upstream %}
formula2:
  upstream_url: {{ upstream }}

# and so on...


当然,这不能按书面规定进行。正确的方法是什么?

最佳答案

试试这个:

支柱/s​​hared.sls

upstream: https://example.com/youarehere


支柱/formula1.sls

{% import_yaml "shared.sls" as defaults %}
formula1:
  upstream_uri: {{ defaults.upstream }}


支柱/formula2.sls

{% import_yaml "shared.sls" as defaults %}
formula2:
  upstream_url: {{ defaults.upstream }}

关于salt-stack - 如何从另一个支柱文件中导入数据?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32748964/

10-13 02:09