当包含sls文件时,我想使用相对路径。这种方法在包含状态文件时有效,但在包含柱状文件时无效。
让我们假设我的盐管理器具有以下结构:
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
当我称其为高状态时,一切都会按预期进行。现在,我对支柱数据使用相同的逻辑。这意味着我有以下文件:
/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
现在调用高状态时,会出现以下错误消息:
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中的相对路径来存储状态文件,但是在对支柱数据执行相同操作时会抱怨。
这是预期的行为吗?还是我可能不得不使用其他语法?
答案 0 :(得分:0)
此提交添加了用于支柱文件的相对包含:https://github.com/saltstack/salt/pull/52156
但是在撰写本文时(2019年11月15日),它似乎尚未发布。