如何从另一个支柱文件中导入数据?

时间:2015-09-23 20:34:48

标签: salt-stack

情况:我们有多个盐配方,其中包含某些支柱配置选项,在我们的环境中,它们是相同的。例如,他们对上游服务使用相同的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...

当然,这不符合书面规定。这样做的正确方法是什么?

1 个答案:

答案 0 :(得分:5)

试试这个:

<强>支柱/ shared.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 }}