【发布时间】:2019-11-14 09:36:01
【问题描述】:
我想在包含 sls 文件时使用相对路径。此方法在包含状态文件时有效,但在包含支柱文件时无效。
假设我的 salt master 具有以下结构:
file_roots:
base:
- /srv/salt/states
pillar_roots:
base:
- /srv/salt/pillars
假设我有以下文件:
/srv/salt/states/top.sls
/srv/salt/states/test/
/srv/salt/states/test/init.sls
/srv/salt/states/test/test_state.sls
在 top.sls 文件中,我包含这样的测试目录:
base:
'*':
- test
init.sls 文件随后包含实际的状态文件,如下所示:
include:
- .test_state
当我调用 highstate 时,一切都按预期工作。现在我对支柱数据使用相同的逻辑。这意味着我有以下文件:
/srv/salt/pillars/top.sls
/srv/salt/pillars/test/
/srv/salt/pillars/test/init.sls
/srv/salt/pillars/test/test_pillar.sls
在 test_pillar.sls 文件中,我放置了这样的一根支柱:
test_pillar: text
init.sls 文件如下所示(类似于上面的 init.sls 文件):
include:
- .test_pillar
当我现在调用 highstate 时,我收到以下错误消息:
Data failed to compile:
----------
Pillar failed to render with the following messages:
----------
Specified SLS '.test_pillar' in environment 'base' is not available on the salt master
所以我回到 init.sls 文件并将文件路径设为绝对路径:
include:
- test.test_pillar
现在可以了。
长话短说:salt 允许我在 init.sls 中为状态文件使用相对路径,但在对支柱数据执行相同操作时会抱怨。
这是预期的行为吗?还是我必须使用其他语法?
【问题讨论】:
标签: salt-stack