簡體   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