![](/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.