使用管理命令重新部署django项目
django-sitepush的Python项目详细描述
使用管理命令重新部署django项目
它是做什么的?
使用fabric在每个要重新部署的远程实例上运行管理命令 本身。
远程命令将从git中提取源代码,运行所有必要的django 管理命令,然后重新启动服务器。
它面向中小型应用程序。
为什么不直接写一个结构脚本呢?
更快。当你远程运行所有东西只需要10分钟 部署实例的秒数。
将运行哪些命令?
- git pull
- pip install -r requirements.txt
- syncdb
- migrate
- collectstatic
- restart server (webserver dependent)
要求
- 正在运行的已部署实例:
- 带mod wsgi的apache
- 古尼孔
- 面料
- 一个致力于这个项目的虚拟人。
- 项目的git托管存储库
安装
将应用程序添加到您的INSTALLED_APPS设置:
INSTALLED_APPS = ( #... 'sitepush', )
设置
将服务器配置添加到设置文件:
DEPLOYS = { 'default': { 'HOST': '192.168.0.1', # IP or domain name 'USER': 'user', # User to login with 'BRANCH': 'master', # Git branch to pull updates from 'SETTINGS': 'settings', # Settings file to use (optional) 'DIR': '/var/www/myproject/', 'ENV': 'myvirtualenv', # virtualenv used in the project 'WEBSERVER': 'gunicorn', # webserver - 'apache' or 'gunicorn' 'PID_FILE': '/tmp/gunicorn.pid', # Gunicorn pid file path 'WSGI_FILE': 'deploy/wsgi.py', # Apache wsgi file path }, }
应该根据web设置PID_FILE/WSGI_FILE设置 正在使用的服务器。
BRANCH是可选的,默认为master
使用量
python manage.py deploy_remote default # Or python manage.py deploy_remote srv1 srv2 #...' # Don't install requirements: python manage.py deploy_remote default --noreqs # Deploy all remote instances: python manage.py deploy_remote --all