为什么在这个盐环境中使用支柱值会因“......没有属性......”而失败?

时间:2018-03-19 13:42:36

标签: salt-stack

我安装了新的Debian(9.3)安装了新的salt-master(2017.7.4)和salt-minion。在/etc/salt/minion.d我有一个包含以下内容的配置文件:

master: 127.0.0.1
grains:
  roles:
    - 'introducer'

/srv/salt/top.sls我有:

base:
  # https://docs.saltstack.com/en/latest/ref/states/top.html
  'G@roles:introducer':
    - 'introducer'

/srv/pillar/data.sls我有:

introducer:
    location: 'tcp:x.x.x.x:y'
    port: 'tcp:y'

当我运行salt '*' state.apply时,我遇到了这个失败:

668629:
    Data failed to compile:
----------
    Rendering SLS 'base:introducer' failed: Jinja variable 'salt.pillar object' has no attribute 'introducer'
ERROR: Minions returned with non-zero exit code

为什么支柱数据不可用?

1 个答案:

答案 0 :(得分:2)

支柱数据也需要最高定义。问题中描述的配置没有支柱top.sls,因此没有为任何一个小兵选择支柱数据。

要更正此问题,请在Pillar目录中添加top.sls,该目录选择所需的小兵并为他们提供数据。例如,这个/srv/pillar/top.sls

base:
  '*':
    - 'data'

这使得/srv/pillar/data.sls的内容可供基础环境中的所有小兵使用(由*选择)。