Salt:在一台主机上管理 100 多个 virtualenvs
Salt: manage 100+ virtualenvs on one host
我们如何构造 salt state 树才能 运行 highstate
一个主机上的大量虚拟环境 运行ning?
我们 运行 virtualenvs 用于开发和生产,使用 fabric。我们想从织物切换到盐。一切正常,除了 highstate
花费的时间太长。我们在一台主机上有 100 多个 virtualenvs,调用 highstate
会更新 100 多个 virtualenvs。
salt '*' state.highstate
总是对你的随从应用所有状态。这取决于您的状态,为什么要花很长时间才能达到高状态 returns.
可以通过为每个 venv 使用单独的状态来组织部署。个别状态可以这样应用:
salt '*' state.sls venv1
一棵简单的盐树可能看起来像这样。
.
+-- salt
| +-- _prereq.sls
| +-- venv1.sls
| +-- venv2.sls
| +-- top.sls
如果您需要以相同的方式完成每个 venv 的先决条件,您可以使用类似的东西:
_prereq.sls
install_something:
pkg.installed:
pkgs: ['foo', 'bar']
venv1.sls
include:
- _prereq
myvenv_state:
virtualenv.managed:
- system_site_packages: False
- requirements: salt://requirements.txt
- require:
- sls: _prereq
我更喜欢能够在不考虑它的情况下高调我的爪牙,所以我尽量避免可寻址状态。但它可能符合您的需求。
您可能还想看看 salt.states.virtualenv
我们如何构造 salt state 树才能 运行 highstate
一个主机上的大量虚拟环境 运行ning?
我们 运行 virtualenvs 用于开发和生产,使用 fabric。我们想从织物切换到盐。一切正常,除了 highstate
花费的时间太长。我们在一台主机上有 100 多个 virtualenvs,调用 highstate
会更新 100 多个 virtualenvs。
salt '*' state.highstate
总是对你的随从应用所有状态。这取决于您的状态,为什么要花很长时间才能达到高状态 returns.
可以通过为每个 venv 使用单独的状态来组织部署。个别状态可以这样应用:
salt '*' state.sls venv1
一棵简单的盐树可能看起来像这样。
.
+-- salt
| +-- _prereq.sls
| +-- venv1.sls
| +-- venv2.sls
| +-- top.sls
如果您需要以相同的方式完成每个 venv 的先决条件,您可以使用类似的东西:
_prereq.sls
install_something:
pkg.installed:
pkgs: ['foo', 'bar']
venv1.sls
include:
- _prereq
myvenv_state:
virtualenv.managed:
- system_site_packages: False
- requirements: salt://requirements.txt
- require:
- sls: _prereq
我更喜欢能够在不考虑它的情况下高调我的爪牙,所以我尽量避免可寻址状态。但它可能符合您的需求。
您可能还想看看 salt.states.virtualenv