我有两台服务器,一台Dev服务器和一台Production服务器。 Production服务器运行一个活的Django站点,而Dev服务器有一个Django项目的副本。 我使用Dev服务器在Django站点上工作,进行改进,修复错误等。一旦我对Dev版本的工作方式感到满意,我将从Dev服务器移动整个Django目录,并replaceProduction上的相同目录服务器。 两台服务器不在同一个局域网中,所以这个过程并不简单。
目前为止我还有一些问题。
我想我需要移动到这个过程的GIT存储库。 但我的问题是,我将如何设置这一切呢?
Production服务器上的存储库托pipe起来,从Dev服务器上拉出来,做功,然后提交? 然后,我会从Production服务器(相同的服务器回购托pipe)拉运行当前的工作版本? Dev Server上托pipe回购,从同一台服务器上提取回购,然后将Production版本拖到Production服务器上? Production服务器和Dev服务器(第三台服务器)的服务器上托pipe回购吗? 谢谢您的帮助 :)
我与Django开发和GIT合作了18个月。 在这期间,我试图托pipe自己的git仓库,今天我使用GITHUB的工作。 这是一个小的成本更容易和节省时间。 看看我的考虑:
除非你是具有GIT经验的Linux专家,否则在GITHUB主持你的项目会更便宜(考虑到时间就是金钱)。 他们有免费的GIT托pipe公共项目(任何人都可以克隆/分叉)。 他们也有(廉价)付费的GIT托pipe,如果你想有一个私人存储库。
GITHUB(或其他GIT托pipe公司)将使设置储存库变得更加容易,因此您可以学习在使用GIT时使用GIT(换句话说,由于Web界面,您不必学习比GIT命令更多的内容在使用GIT之前的行语法)
GIT是一个分布式控制版本系统。 这意味着每个放置版本库的地方都会包含所有代码的完整历史logging,所以如果您select托pipe自己的GIT服务器,则将DEV或PRD服务器放在一起并不重要。 其实你可以把它放在自己的笔记本上,不用担心丢失数据,因为你也有DEV和PRD的副本。 请记住,您必须从您的GIT服务器上启动您的DEV和您的PRD服务器上的PULL。
使用FABRIC脚本可以很容易地从您自己的机器更新DEV或PRD服务器。 所有你需要做的是在你的fabfile.py中有这样的东西:
def deploy_production():
用cd('/ home / my_user / my_project'):
运行(“git pull”)#更新到最新版本
带有前缀('source〜/ .virtualenvs / my_env / bin / activate'):
运行('./ manage.py collectstatic --noinput')
def production():
“””
将环境设置为生产
“””
continue = confirm('更新生产环境,继续?',default = False)
如果不能继续:
中止('再见 - 谢谢你没有做什么生产!')
env.hosts = ['my_server.my_domain.com.br']
env.key_filename = ['〜/ amazon / my_ssh_key.pem']
env.user ='ubuntu'
#使用它来运行结构更新程序:
晶圆厂生产deploy_production
希望它有帮助,好看!
如果您发现这些答案有用,请分配点数。
我build议你像上面提到的那样使用git之类的源代码控制系统,在本地做你的工作,然后看一下Fabric的部署。 您可以使用git checkout-index将代码在本地(通过fabfile中的代码)导出,然后通过fab dev deploy等命令将代码发送到服务器。 准备好部署到生产fab prod deploy 。 你可以把代码放在fabfile文件中,将源代码移动到合适的位置,像Django一样更新依赖项(例如通过pip),重新启动uwsgi等。