如何设置apt以将其用于web应用程序部署



如果我想使用apt包将我的web应用程序部署到不同的linux服务器,我应该采取哪些步骤?从PHP/MySQL应用程序开始,我希望能够将其安装为这样的包:

apt-get update
apt-get install mywebapp-package

我想我必须在某个地方建立一个存储库,并将我的包添加到其中,但这是如何工作的呢?如何创建包本身?我必须做些什么才能让任何服务器找到我的存储库?一些谷歌搜索只会发现令人困惑的信息,也许我找错了流行语。任何帮助都将不胜感激!

以下是如何创建apt包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编译过c/c++程序。。。基本上是在应用程序文件夹中运行"./configure",然后运行"make"或"makeinstall"来编译/解压缩程序。。。dh_make有一个稍微不同的流程和一些默认值,但它是一个非常相似的工作流。。。以下是GNU Make Reference 中一个非常简单的makefile

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)

基本上默认的"make"任务编译程序编辑。。。并且依赖关系是从这个结构中的文件名中自动检测到的

对于一个webapp,这里有一个OSS项目的makefile,其中包括从Github中提取http://build.shr-project.org/Makefile

基本上,如果你在项目中工作,并将所有安装任务放入一个makefile。。。并让"make"默认任务解压缩您的应用程序,安装apache/nginxvhost,完成后重新启动/重新加载相关服务器。。。那么apt是一种完全可行的处理方式。。。有很多程序可以在数百个系统上同时管理apt包。。。https://serverfault.com/questions/79093/managing-upgrades-on-hundreds-of-debian-servers

Canonical/Ubuntu的Landscape是这类事情的一个很好的工具。。。我以前在大约20台服务器的平台上使用过它。。。不太确定建立自己的上游存储库和签名密钥等的细节,所以apt可以完全管理包,但我相信一旦你的dpkg进入,它就会非常简单

Debconf/apt为许多类型的应用程序提供了一个非常好的用例。。。然而,如果它是一个持续部署的应用程序,并且你必须不断升级(对我来说,经验法则是如果你每周或5个月升级一次以上)。。。那么使用连续部署工具可能会更好。。。Capistrano和Fabric都很好(用过Cap,有多级扩展…很棒,Fabric我只听说过很棒的事情)。。。但我仍然不相信Cap在数百台Debian服务器上。。。这实际上是关于你项目的规模。。。上面说的10或20台服务器的上限太慢太重了,无法很好地管理部署(IMHO,显然任何事情都可以由任何人完成,我对此还没有做足够的研究,但Ruby Rake和Capistrano等都是DAMN slow,与Gnu Make和debconf相比不可靠,尤其是在野外)

特别是关于一般的服务器自动化,我建议您查看Puppet和Chef,这两种工具看起来都很可行。也没有使用,但我们所有的管理脚本都在Ruby中,Chef的刀具工具在以脚本化的方式配置服务器方面非常方便。

我建议使用Capistrano或Fabric之类的东西来部署应用程序,而不是apt-get。这些工具是为部署应用程序而设计的,能够部署到多个服务器。

相关内容

最新更新