Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Salt stack 在saltstack中处理状态文件和支柱文件的相对路径_Salt Stack_Salt - Fatal编程技术网

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

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

我想在包含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
/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版。所以现在看来,它并没有像预期的那样工作是有道理的。