如何设置Git将python应用程序文件部署到Ubuntu服务器?
我在VPN主机上安装了一个新的Ubuntu12.10服务器。我已经安装了所有必需的设置,如如何设置Git将python应用程序文件部署到Ubuntu服务器?,python,windows,git,ubuntu,Python,Windows,Git,Ubuntu,我在VPN主机上安装了一个新的Ubuntu12.10服务器。我已经安装了所有必需的设置,如Nginx、Python、MySQL等。我正在配置它,以便使用uWSGI部署Flask+Python应用程序。工作正常 但为了创建一个基本的应用程序,我使用Putty工具(从Windows)创建了所需的应用程序.py文件 但我想设置一个Git功能,这样我就可以将代码推送到所需的目录,比如/var/www/mysite.com/app_data,这样我就不必每次对网站进行一些更改时都使用SSH或FileZil
Nginx、Python、MySQL
等。我正在配置它,以便使用uWSGI部署Flask+Python应用程序。工作正常
但为了创建一个基本的应用程序,我使用Putty工具(从Windows)创建了所需的应用程序.py
文件
但我想设置一个Git功能,这样我就可以将代码推送到所需的目录,比如/var/www/mysite.com/app_data
,这样我就不必每次对网站进行一些更改时都使用SSH
或FileZilla
等
由于我使用Ubuntu和Windows开发应用程序,设置Git类功能将帮助我轻松地将数据推送或更改到云服务器
如何在Ubuntu中设置Git功能?我如何使用GitBash
等工具访问和部署数据
请建议- 在服务器上创建一个裸存储库
- 将本地存储库配置为将服务器上的存储库用作远程存储库
- 在本地工作站上工作时,将更改发送到服务器上的存储库中
- 在服务器存储库中创建一个post-receive钩子,该钩子调用“git-archive”,从而将文件传输到服务器上的其他目录
$ git init
$ git add *
$ git commit -m "initial commit"
在中央服务器上创建repo
例如,bitbucket提供了以下描述:
通常,您在Bitbucket上创建项目,找到它的url,然后通过devel repo调用:
$ git remote add origin <bitbucket-repo-url>
$ git push origin
如果您的应用程序需要在更新后重新启动,那么您必须确保重新启动会发生(这应该可以使用git log命令,它将在更新后显示新行,或者您可以检查,如果状态代码会告诉您)
就个人而言,我会使用“一次性ssh”(您要求不要使用ssh,但我认为您要求的是“更简单”的解决方案,因此一次性调用比使用ftp、scp或其他魔法更简单
从您的devel机器(假设您有ssh访问权限):
优点是,您可以控制更新发生的时刻
讨论
我使用类似的工作流程
rsync
在许多情况下似乎已经足够好或更好了(请注意在应用程序运行时和应用程序中的文件创建的文件,这些文件将在正在进行的版本中删除,并且也将在服务器上删除)
salt
(saltstack)也可以,但需要更多的学习和设置)
我了解到,将源代码和配置数据保存在同一个repo中会使某些情况变得更加困难(这就是为什么我正在使用salt)
fab
来自Fabric(基于python)的命令可能是最好的选择(如果在Windows上安装变得困难,请参阅
$ cd /var/www
$ git clone <bitbucket-repo-url>
$ cd mysite.com
$ git pull
$ ssh user@prod.server.com "cd /var/www/mysite.com && git pull origin && myapp restart"