![](/img/trans.png)
[英]How to deploy Flask app with Supervisor/Nginx/Gunicorn on Ubuntu server
[英]How to setup Git to deploy python app files into Ubuntu Server?
我在VPN托管上设置了新的Ubuntu 12.10服务器。 我已经安装了所有必需的安装程序,例如Nginx, Python, MySQL
等。我正在配置它以使用uWSGI部署Flask + Python应用程序。 它的工作正常。
但是,要创建一个基本应用程序,我使用了Putty工具(从Windows)并创建了所需的应用程序.py
文件。
但是我想设置一个Git功能,这样我就可以将我的代码推送到要求的目录,例如/var/www/mysite.com/app_data
这样我每次对网站进行一些更改时都不必使用SSH
或FileZilla
等。
由于我同时使用Ubuntu和Windows进行应用程序开发,因此设置Git功能将有助于我轻松地将数据推送或更改到Cloud Server。
如何在Ubuntu中设置Git功能? 以及如何使用GitBash
等工具访问它并部署数据?
请建议
innaM的修改版本:
有三个存储库
然后,您将事情从开发提交到中央,并在要部署到产品上时立即提交,而不是要求产品从产品中提取数据。
“询问”产品服务器以获取更新可以由cron管理(然后您必须等待一会儿),或者您可以使用其他方式,例如ssh的一次调用,要求执行git pull并可能重新启动您的应用程序。
更详细地讲,您可以采用这种方式。
在您的devel服务器上开发和测试该应用。
将其放入本地存储库:
$ git init
$ git add *
$ git commit -m "initial commit"
例如,bitbucket提供了以下描述: https : //confluence.atlassian.com/display/BITBUCKET/Import+code+from+an+existing+project
通常,您在Bitbucket上创建项目,找到它的URL,然后从devel repo调用中进行:
$ git remote add origin <bitbucket-repo-url>
$ git push origin
登录到您的产品服务器。
转到/ var / www并克隆bitucket:
$ cd /var/www
$ git clone <bitbucket-repo-url>
$ cd mysite.com
您应该已经准备好目录。
有很多选择。 一个是cron任务,会定期调用
$ git pull
万一您的应用需要在更新后重新启动,则必须确保重新启动会发生(这可以使用git log命令执行,该命令将在更新后显示新行,或者您可以检查状态代码是否可以告诉您您。
就我个人而言,我将使用“单次ssh”(您要求不使用ssh,但我假设您正在要求“更简单”的解决方案,因此一次射击应比使用ftp,scp或其他魔术方法更简单。
在您的开发机器上(假设您在那里有ssh访问权限):
$ ssh user@prod.server.com "cd /var/www/mysite.com && git pull origin && myapp restart"
好处是,您可以控制瞬间,即会进行更新。
我使用类似的工作流程。
rsync
在许多情况下似乎可以很好地发挥作用或更好(请注意在应用程序运行时以及应用程序中的文件所创建的文件,这些文件应在进行中的版本中删除,并且也应在服务器上删除)。
salt
( salt
堆)也可以使用,但需要更多的学习和设置)。
我了解到,将源代码和配置数据保存在同一存储库中会使某些情况更加困难(这就是为什么我正在使用salt的原因)。
Fabric(基于python)的fab
命令可能是最好的选择(以防在Windows上安装变得困难,请查看http://ridingpython.blogspot.cz/2011/07/installing-fabric-on-windows.html
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.