2012-08-23 75 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/ –

相关问题