Salt:在一台主机上管理100多个虚拟媒体

时间:2016-03-07 16:52:27

标签: python virtualenv salt-stack

我们如何构建salt状态树,以便能够在主机上运行的大量虚拟机中运行highstate

我们使用面料为开发和生产运行virtualenvs。我们想从面料换成盐。一切都很好,除了highstate花费的时间太长。我们在一台主机上有100多个virtualenvs,并且highstate将更新100 + virtualenvs。

1 个答案:

答案 0 :(得分:6)

salt '*' state.highstate

始终将所有状态应用于您的小兵。这取决于你的状态为什么它需要很长一段时间才能返回高阶段。

可以通过为每个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