金贾是在被送到小黄人之前还是之后渲染的柱子?

  • 本文关键字:之后 小黄人 金贾 salt-stack
  • 更新时间 :
  • 英文 :


假设我在两个不同的环境中有不同的凭据,但这是它们之间唯一的区别,并且我不想为单个项目制作额外的支柱文件。

假设我攻击这样的问题:

{%- set deployment = grains.get('deployment') %}
{%- load_yaml as credentials %}
prod: prodpassword
test: testpassword
dev:  devpassword
{%- endload %}
some_app:
  user: someuser
  password: {{ credentials[deployment] }}
  ...more configuration here...

这是意料之中的事。但理论上,测试中的爪牙能获得刺激的密码吗?我认为,这取决于dict查找是在数据发送到客户端之前还是之后进行,这反过来又取决于jinja的呈现时间。主是先渲染它,然后发送结果数据,还是从属按原样接收支柱文件,然后渲染它自己?

支柱数据始终在主节点上渲染,而不是在从属节点上渲染。然而,主人确实可以访问仆从的谷物,这就是为什么你的例子有效的原因。

给定一个包含以下内容的Pillar SLS文件:

test: {{ grains['id'] }}

将产生以下支柱数据:

# salt testminion pillar.item test
testminion:
    ----------
    test:
        testminion

来源:我是一名SaltStack核心开发人员。

最新更新