使用 salt 执行任意 sls 文件

使用 salt 执行任意 sls 文件

我正在学习有关盐的知识。

我理解事情的工作方式,状态文件必须放在 master/minion 配置中静态指定的根目录下。

所以我的问题是,有没有办法在文件系统上执行任意 sls 文件,即不在配置的文件根目录下执行?

这样做的目的是,我希望我的项目包含 sls 文件,描述它们将部署到的系统所需的状态,理想情况下,我不希望将这些文件复制/符号链接到 salt 文件根目录中。

谢谢!

答案1

不,salt 查找状态文件file_roots。您可以通过赋予它一个以点分隔的名称来告诉它要执行哪个 sls,例如默认情况下哪个 salt 将在或salt '*' state.apply my.state中查找。/srv/salt/my/state.sls/srv/salt/my/state/init.sls

该文件需要存在于 salt master 上(除非你正在使用 minion无主模式)。

答案2

事实证明我可以通过几种方式做我想做的事情:1.使用state.template函数中,我可以指定要执行的 sls 模板文件的路径 2. 在无主模式下,使用salt-call--file-root--pillar-root参数,我可以将文件根和支柱根设置为任何目录(但它必须遵循文件/支柱根目录结构,并有一个top.sls文件,除非我使用state.sls)。

相关内容