python - salt : manage 100+ virtualenvs on one host

标签 python virtualenv salt-stack

我们如何构建 salt state 树,以便能够从主机上运行的大量 virtualenv 中为一个运行 highstate

我们使用 fabric 为开发和生产运行 virtualenvs。我们想从织物切换到 salt 。一切正常,除了 highstate 花费的时间太长。我们在一台主机上有 100 多个 virtualenvs,调用 highstate 会更新 100 多个 virtualenvs。

最佳答案

salt '*' state.highstate

始终将所有状态应用于您的随从。这取决于您的状态,为什么需要很长时间才能返回 highstate。

可以通过为每个 venv 使用单独的状态来组织部署。可以像这样应用各个状态:

salt '*' state.sls venv1

一棵简单的 salt 树可能看起来像这样。

    .
    +-- 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

关于python - salt : manage 100+ virtualenvs on one host,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35849434/

相关文章:

django - PyCharm 不使用选定的 virtualenv

python - 由于超时,pipenv 安装失败

linux - 如何使用受密码保护的私钥执行 salt 状态 git.latest

azure - 远程执行平台

python - 如何使用 Tensorflow Dataset API 读取不同名称的文件而不评估文件名字符串

python - tkinter 不区分大小写的绑定(bind)

python - 在 python 文件中运行 Django 项目时出错

python - H5PY键读取速度慢

python - 如何根据引号在csv中写入值并忽略引号内的逗号?

python - 使用带有校验和的远程 tarball 安装软件包的 Saltstack 公式