我正在尝试使用salt编写部署脚本.它主要起作用.为了让它一直工作,我必须运行多次高频状态.我最大的问题是如何根据特定的第一个执行命令,并实际完成/工作.
这是我的demo.sls salt状态:
{% 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实际上并没有运行. salt的输出是它运行的,但是没有安装requirements.txt中的任何要求.
我试图将这些要求放在virtualenv.managed部分中,以便运行它,但我必须在那时运行2个高位. 1)从git获取最新版本,似乎运行bot独家2)安装要求.出于某种原因,即使在演示之后放入virtualenv.managed部分,它仍然没有注册新的需求文件.
我使用错误的cmd吗?或者我有订单问题?