2012-08-23 113 views
4

如果我想使用apt軟件包來部署我的web應用程序到不同的linux服務器,我應該採取什麼步驟?從PHP/MySQL的應用程序開始,我希望能夠將它安裝一個軟件包這樣的:如何設置易於使用的web應用程序部署

apt-get update 
apt-get install mywebapp-package 

我想我必須從某個地方建立一個資料庫,並添加我的包,但如何做這項工作?如何創建包本身?我需要做些什麼才能讓任何服務器找到我的存儲庫?一些谷歌搜索只會引起令人困惑的信息,也許我正在尋找錯誤的流行語。任何幫助將非常感激!

回答

2

我建議使用類似CapistranoFabric的東西來部署您的應用程序,而不是apt-get。這些工具用於部署應用程序,並能夠部署到多個服務器。

3

下面是如何創建一個恰當的包裝 https://askubuntu.com/questions/27715/create-a-deb-package-from-scripts-or-binaries

這真的很簡單的......你的應用程序文件夾中有一個的debian子......的./debian/install文件包含一個非常簡單的地圖的文件到最終位置

# debian/install must contain the list of scripts to install 
# as well as the target directory 
echo myscript.sh usr/bin > debian/install 

您可以使用makefile來創建安裝和安裝後任務。如果你以前從來沒有使用make編譯過ac/C++程序......基本上在應用程序文件夾中運行「./configure」,然後「make」或「make install」來編譯/解包程序...... dh_make有一個略有不同的過程和一些默認設置,但是這是一個非常類似的工作流程...以下是從GNU Make Reference

objects = main.o kbd.o command.o display.o \ 
       insert.o search.o files.o utils.o 

    edit : $(objects) 
      cc -o edit $(objects) 
    main.o : main.c defs.h 
      cc -c main.c 
    kbd.o : kbd.c defs.h command.h 
      cc -c kbd.c 
    command.o : command.c defs.h command.h 
      cc -c command.c 
    display.o : display.c defs.h buffer.h 
      cc -c display.c 
    insert.o : insert.c defs.h buffer.h 
      cc -c insert.c 
    search.o : search.c defs.h buffer.h 
      cc -c search.c 
    files.o : files.c defs.h buffer.h command.h 
      cc -c files.c 
    utils.o : utils.c defs.h 
      cc -c utils.c 
    clean : 
      rm edit $(objects) 

基本上默認的「做」一個非常簡單的makefile任務編譯程序編輯...和依賴關係自動從這個結構中的文件名中檢測出來

對於一個web應用程序來說,這是一個來自OSS項目的makefile,其中包括從Github中提取 http://build.shr-project.org/Makefile

基本上,如果您在項目上工作並將所有安裝任務放入makefile中,並讓「make」默認任務解開應用程序並安裝apache/nginx vhost並在完成後重新啓動/重新加載相關服務器......那麼容易的來處理它是完全可行的方式......有很多的節目都來對數百種系統同時管理易包... https://serverfault.com/questions/79093/managing-upgrades-on-hundreds-of-debian-servers

規範/ Ubuntu的Landscape是一個偉大的工具這種類型的東西......我之前在一個大約20臺服務器的平臺上使用過......不太清楚設置自己的上游存儲庫和簽署密鑰等的細節,因此apt能夠完全管理包,我確定它很直接病房一旦你有你的dpkg去

Debconf/apt爲許多類型的應用程序提供了一個很好的用例...但是,如果它是一個應用程序在持續部署,你必須不斷進行升級(經驗法則對於我來說,如果你每週進行一次以上或5次以上的升級)......那麼你可能會更好地使用連續部署工具...... Capistrano和Fabric都非常出色(使用Cap,多級擴展。 ..這真是太好了,Fabric我只聽過很棒的東西)......但我仍然不會信任數百個Debian服務器上的Cap ......這完全是關於你的項目的規模......上面說10或者20個服務器上限對於真正管理部署非常緩慢和笨重(恕我直言,顯然任何人都可以完成任何事情,而且我還沒有真正研究過這一點,但Ruby Rake和Capistrano等都是DAMN SLOW和與Gnu Make和debconf相比不可靠,特別是在野外)

特別是關於通用服務器自動化,我建議你查看PuppetChef,這兩者都是非常可行的工具。沒有使用,但所有我們的管理腳本都在Ruby中,絕對是廚師的刀具工具在腳本時尚配置服務器方面非常方便

+1

John Resig mega-legend使用make ...這btw是一個更好的提示我'當涉及到配置管理時,我看到了一段時間......簡化了一切http://ejohn.org/blog/keeping-passwords-in-source-control/ –

相關問題