salt:一个主机上多个子进程?

3 投票
1 回答
666 浏览
提问于 2025-04-18 18:11

到目前为止,我们在一台Linux主机上运行了几个Python虚拟环境。

我们在考虑使用Salt,但我们希望能够更新一个虚拟环境,而不影响其他的虚拟环境。

据我所知,你只能对整个从属机(minion)说“请进入高状态(highstate)”。

我们看到以下几种解决方案:

  • 在一台Linux操作系统上运行多个从属机:据我了解,目前不支持这种方式。
  • 使用一个从属机,但不使用高状态。我们需要用一个状态来管理每个虚拟环境(不能对整个从属机说“高状态”)。
  • 使用某种虚拟化技术(比如Docker)来给每个虚拟环境分配一个从属机。

我对Salt还不太熟悉,如果我遗漏了什么,或者你不明白我想要什么,请问我。

更新

我们每个Linux操作系统上都有很多虚拟环境,而且它们都非常相似。我们希望能够管理它们,而不需要为每个环境都创建一个sls文件。

1 个回答

4

我觉得你最好的办法就是指定一个特定的状态,这样可以针对你想要管理或修改的虚拟环境。

salt 'minion-id' state.sls manage_virtualenv_1
salt 'minion-id' state.sls manage_virtualenv_flask
salt 'minion-id' state.sls manage_virtualenv_django

这三个 state.sls 调用只会运行每个 sls 文件中的状态,尽管它们都存在于同一个名为 'minion-id' 的主机上。

编辑:

你还可以使用用逗号分隔的 sls 文件列表:

salt 'minion-id' state.sls manage_virtualenv_1,manage_virtualenv_flask,otherslsfile

撰写回答