在Saltstack中处理状态文件和支柱文件的相对路径

时间:2019-11-14 09:36:01

标签: salt-stack salt

当包含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中的相对路径来存储状态文件,但是在对支柱数据执行相同操作时会抱怨。

这是预期的行为吗?还是我可能不得不使用其他语法?

1 个答案:

答案 0 :(得分:0)

此提交添加了用于支柱文件的相对包含:https://github.com/saltstack/salt/pull/52156

但是在撰写本文时(2019年11月15日),它似乎尚未发布。