如何设置apt用于Web应用程序部署

时间:2012-08-23 10:25:09

标签: deployment repository apt-get package-managers

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

apt-get update
apt-get install mywebapp-package

我想我必须在某个地方设置一个存储库并将我的软件包添加到它,但这是如何工作的?如何创建包本身?我需要做什么才能让任何服务器找到我的存储库?一些谷歌搜索只发现混乱的信息,也许我正在寻找错误的流行语。任何帮助将不胜感激!

2 个答案:

答案 0 :(得分:3)

以下是创建apt-package的方法 https://askubuntu.com/questions/27715/create-a-deb-package-from-scripts-or-binaries

这真的非常简单......在你的app文件夹中有一个 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 ++程序...基本上在app文件夹中运行“./configure”然后“make”或“make install”来编译/解压缩程序... 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 / nginx vhost并在完成后重新启动/重新加载相关服务器。 ..那么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个服务器上限太慢而且很笨重真的很好地管理部署(恕我直言,显然任何人都可以完成任何工作,而且我还没有真正研究过这一点,但是与Gnu Make和debconf相比,Ruby Rake和Capistrano等都是DAMN SLOW并且不可靠,特别是在野外) / p>

特别是对于一般的服务器自动化,我建议您查看PuppetChef,这两个都是非常可行的工具。不使用,但我们所有的管理脚本都在Ruby中,而且Chef的刀具工具非常方便以脚本方式配置服务器

答案 1 :(得分:2)

我建议使用CapistranoFabric之类的内容来部署应用程序而不是apt-get。这些工具用于部署应用程序,并且能够部署到多个服务器。