Salt 中有没有办法对单个命令使用不同的配置文件?

Salt 中有没有办法对单个命令使用不同的配置文件?

我在一个必须通过合并请求来审查盐状态和支柱变化的环境中工作。

目前,当我们需要在提交更改之前测试它们时,我们会登录 salt master,在修改同事后检查我们正在处理的分支并执行测试。

这种方法的问题在于,它要求单个用户在需要进行测试的时间内基本上锁定 salt master。

因此我的问题是:有没有办法为单个 salt 命令指定 salt master 配置和/或 state/pillar root?

答案1

如果你使用 gitfs,那么所有分支都是 salt 中的环境。因此你可以这样做

salt-call state.highstate saltenv=testingBranch pillarenv=testingBranch test=True

您可以将它们混合搭配,因此如果您只是测试支柱变化,您可以不用 saltenv。

答案2

有一个选项允许为单个命令指定一个 salt master 配置文件,但是该配置文件的内容不能覆盖 pillar/states 根。

经过一番研究:salt 中有一个--config-dir选项,但是由于 Salt 的异步架构,它不会覆盖 pillar 和 states roots(在这个 Salt 问题):

这很有用——但是,由于 salt 架构,这很难。基本上,salt-cli 向 minions 发出命令。minions 然后运行该命令,向 master 请求它们需要的任何文件。master 不会将 minions 的请求与正在运行的 CLI 作业进行匹配,因此无法以这种方式动态更改 file_roots 或类似内容。它们必须在 master 运行时进行更改。

解决这个问题的正确方法是使用gitfsSalt 环境,正如 Mike 的回答中所解释的那样。

相关内容