盐:一个主机上有几个minion?

3

到目前为止,我们在一个Linux主机上的几个Python虚拟环境中运行应用程序。

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

据我所知,您只能对整个Minion说“请进入Highstate”。

我们看到以下解决方案:

  • 在一个Linux OS上运行多个Minion:据我所知,目前不支持
  • 使用一个Minion,但不使用Highstate。我们需要使用一个状态来处理每个虚拟环境(我们不能对整个Minion说“Highstate”)
  • 使用某种虚拟化(例如Docker)为每个虚拟环境提供一个Minion。

我是Salt的新手,请问我是否有遗漏或者您没有理解我的意思。

更新

我们在每个Linux OS上有很多虚拟环境。它们全部非常相似。我们希望在不创建每个虚拟环境的SLS文件的情况下管理它们。


亲爱的投票关闭此问题的用户们:请告诉我为什么。 - guettli
相关链接:https://github.com/saltstack/salt/issues/15145 - guettli
1个回答

4
我认为最好的方法是指定一个特定的状态,以便针对您想要管理或修改的virtualenv进行操作。
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调用仅会在同名为'minion-id'的主机上运行每个sls文件中的状态,即使它们都存在于同一台主机上。
编辑:
您也可以使用逗号分隔的sls文件列表。
salt 'minion-id' state.sls manage_virtualenv_1,manage_virtualenv_flask,otherslsfile

谢谢您的提示。但是我如何在一个minion上处理多个状态?例如:我想更新所有的django站点。据我所知,salt 'minion-id' state.sls manage_virtualenv_django_*不起作用。 - guettli
您可以传入一个逗号分隔的sls文件列表,以便执行: http://docs.saltstack.com/en/latest/ref/modules/all/salt.modules.state.html#salt.modules.state.sls - Utah_Dave

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接