繁体   English   中英

如何设置Git将python应用程序文件部署到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这样我每次对网站进行一些更改时都不必使用SSHFileZilla等。

由于我同时使用Ubuntu和Windows进行应用程序开发,因此设置Git功能将有助于我轻松地将数据推送或更改到Cloud Server。

如何在Ubuntu中设置Git功能? 以及如何使用GitBash等工具访问它并部署数据?

请建议

  • 在服务器上创建一个裸存储库。
  • 配置本地存储库以将服务器上的存储库用作远程服务器。
  • 在本地工作站上工作时,提交所做的更改并将其推送到服务器上的存储库。
  • 在服务器存储库中创建一个称为“ git archive”的接收后挂钩,从而将文件传输到服务器上的其他目录。

innaM的修改版本:

概念

有三个存储库

  1. 开发-在本地开发机器上进行开发
  2. 中央-储存库服务器-像GitHub,Bitbucket或其他任何东西
  3. 产品-生产服务器

然后,您将事情从开发提交到中央,并在要部署到产品上时立即提交,而不是要求产品从产品中提取数据。

“询问”产品服务器以获取更新可以由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

您应该已经准备好目录。

触发发布对prod3的更新

有很多选择。 一个是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在许多情况下似乎可以很好地发挥作用或更好(请注意在应用程序运行时以及应用程序中的文件所创建的文件,这些文件应在进行中的版本中删除,并且也应在服务器上删除)。

saltsalt堆)也可以使用,但需要更多的学习和设置)。

我了解到,将源代码和配置数据保存在同一存储库中会使某些情况更加困难(这就是为什么我正在使用salt的原因)。

Fabric(基于python)的fab命令可能是最好的选择(以防在Windows上安装变得困难,请查看http://ridingpython.blogspot.cz/2011/07/installing-fabric-on-windows.html

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM