延迟命令的执行,直到其他事情已经运行

我正在尝试编写一个盐的部署脚本。 它大部分工作。 我必须运行一段时间的高速状态才能完成。 我最大的问题是如何根据具体的第一个执行命令,并且他们实际上正在完成/工作。

这是我的demo.sls盐状态:

{% set web_root = "/var/www/demo/" %} /var/www/venv/demo: virtualenv.managed: - system_site_packages: False - require: - pkg: python-virtualenv demo: git.latest: - name: git://localhost/demo.git - target: {{ web_root }} demo_pip: cmd.wait: - name: 'source /var/www/venv/demo/bin/activate && pip install -r requirements.txt' - cwd: {{ web_root }} - watch: - git: demo run_migrations: cmd.wait: - name: 'source /var/www/venv/demo/bin/activate && python manage.py syncdb --noinput' - cwd: {{ web_root }} - watch: - cmd: demo_pip restart_gunicorn: cmd.wait: - name: supervisorctl restart gunicorn - watch: - cmd: run_migrations 

我已经设置了这样的demo_pip后git调用运行(这很好),但说实话demo_pip实际上并没有运行。 盐的输出是运行的,但没有安装requirements.txt的要求。

我试图把要求放在virtualenv.managed部分,以便运行它,但是我必须在那个时候运行2个highstates。 1)从git得到最新的,似乎运行bot独占2)安装的要求。 由于某些原因,即使在demo之后放置virtualenv.managed节,它仍然不会注册新的需求文件。

我使用错误的cmd ? 或者我有订单问题?

  • SaltStack:调用一个sls文件的单一状态
  • 构build分阶段环境的盐状态文件
  • 如何列出小工具连接的IP地址?
  • 盐奴隶继续失去与主的联系
  • SaltStack:有没有办法在输出中只显示失败和警告?
  • 我应该如何备份SaltStack的支柱数据?
  • One Solution collect form web for “延迟命令的执行,直到其他事情已经运行”

    我终于明白了这一点。 它看起来像是一个文件/文件夹的权限问题。 我为/var/www所有文件夹设置了一个file.managed ,将其设置在组www-data 。 也确保一切都执行为www-data ,之后,事情开始像预期的工作。

    服务器问题集锦,包括 Linux(Ubuntu, Centos,Debian等)和Windows Server服务器.