Python论坛  - 讨论区

标题:关于django自动化部署,请教夏老师

2012年04月13日 星期五 14:42

场景:一个django项目,开发环境使用sqlite,生产环境使用mysql,希望在修改配置的前提下,实现一个项目两套环境的自动化部署,求解决方案。

感谢夏老师!!

2012年04月14日 星期六 13:54

我使用过的自动化部署方案,fabric是最酷的,足够灵活,强大。

一个项目,一个dev环境,一个release环境,用fabric就可以轻松实现。具体思路可以这样:

1、目录结构

     ${WWWROOT}/dev.xxx.com/current

     ${WWWROOT}dev.xxx.com/dev-201204141330

     其中current是dev-201204141330的软链接

     ${WWWROOT}release.xxx.com/current

     ${WWWROOT}release.xxx.com/release-201204141330

     其中current是release-201204141330的软链接

2. 将代码和配置分开

     ${WWWROOT}shared/settings-dev.py

     ${WWWROOT}shared/settings-release.py

3. 使用fabric

from fabric.api import run, env, require, sudo, cd
import datetime, random


def dev():
    env.user = 'your username'
    env.hosts = ['dev.xxx.com']

def relase():
    env.user = 'your username'
    env.hosts = ['release.xxx.com']


def deploy_dev():
    run("ln -sf shared/settings-dev.py dev.xxx.com/current/settings.py")

def deploy_release():
    run("ln -sf shared/settings-release.py release.xxx.com/current/settings.py")

4. 执行发布

fab dev deploy_dev
fab_dev deploy_release

如下红色区域有误,请重新填写。

    你的回复:

    请 登录 后回复。还没有在Zeuux哲思注册吗?现在 注册 !

    Zeuux © 2024

    京ICP备05028076号