Salt stack 在saltstack中处理状态文件和支柱文件的相对路径
我想在包含sls文件时使用相对路径。此方法在包含状态文件时有效,但在包含支柱文件时无效 让我们假设我的salt master上有以下结构:Salt stack 在saltstack中处理状态文件和支柱文件的相对路径,salt-stack,salt,Salt Stack,Salt,我想在包含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
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
/srv/salt/pillars/top.sls
/srv/salt/pillars/test/
/srv/salt/pillars/test/init.sls
/srv/salt/pillars/test/test_pillar.sls
在top.sls文件中,我包含如下测试目录:
base:
'*':
- test
include:
- .test_state
test_pillar: text
然后,init.sls文件包含如下实际状态文件:
base:
'*':
- test
include:
- .test_state
test_pillar: text
当我打电话给highstate时,一切正常。现在我对支柱数据使用相同的逻辑。这意味着我有以下文件:
/srv/salt/states/top.sls
/srv/salt/states/test/
/srv/salt/states/test/init.sls
/srv/salt/states/test/test_state.sls
/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文件中,我放置了如下一个支柱:
base:
'*':
- test
include:
- .test_state
test_pillar: text
init.sls文件如下所示(类似于上面的init.sls文件):
当我现在调用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中的相对路径,但在对支柱数据执行相同操作时会出现问题
这是故意的行为吗?或者我必须使用其他语法吗?此提交中添加了支柱文件的相对包含:
但在撰写本文时,2019年11月15日,它看起来还没有发布。哦,好的。我使用的是2018年9月发布的2018.3.3版。所以现在看来,它并没有像预期的那样工作是有道理的。