Django 简单的远程部署fabfile.py
示例
Fabric是一个Python(2.5-2.7)库和命令行工具,用于简化SSH在应用程序部署或系统管理任务中的使用。它使您可以通过命令行执行任意Python函数。
通过pipinstallfabric
创建fabfile.py在根目录中安装结构:
#myproject/fabfile.py
fromfabric.apiimport *
@task
def dev():
# details of development server
env.user= # your ssh user
env.password= #your ssh password
env.hosts= # your ssh hosts (list instance, with comma-separated hosts)
env.key_filename= # pass to ssh key for github in your local keyfile
@task
def release():
# details of release server
env.user= # your ssh user
env.password= #your ssh password
env.hosts= # your ssh hosts (list instance, with comma-separated hosts)
env.key_filename= # pass to ssh key for github in your local keyfile
@task
def run():
with cd('path/to/your_project/'):
with prefix('source ../env/bin/activate'):
# activate venv, suppose it appear in one level higher
# pass commands one by one
run('git pull')
run('pip install -r requirements.txt')
run('pythonmanage.pymigrate --noinput')
run('pythonmanage.pycollectstatic --noinput')
run('touch reload.txt')要执行文件,只需使用以下fab命令:
$ fab dev run # for release server, `fab release run`
注意:您无法为github配置ssh密钥,而只能在fabfile运行时手动键入login和password,与密钥相同。