繁体   English   中英

如何设置易于使用它进行Web应用程序部署

[英]How to set up apt to use it for web app deployment

如果我想使用apt软件包将Web应用程序部署到不同的linux服务器,我应该采取什么步骤? 从PHP / MySQL应用程序开始,我希望能够将其作为一个软件包安装,如下所示:

apt-get update
apt-get install mywebapp-package

我想我必须在某个地方建立一个存储库并向其中添加我的软件包,但是这如何工作? 如何创建包本身? 我该怎么做才能使任何服务器找到我的存储库? 一些谷歌搜索只会发现令人困惑的信息,也许我在寻找错误的流行词。 任何帮助将非常感激!

这是创建apt-package的方法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 ++程序... ...基本上在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”任务会编译程序编辑...,并从此结构中的文件名中自动检测到依赖项

对于Web应用程序,这是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 Debian服务器

Canonical / Ubuntu的Landscape是用于此类事情的好工具...我以前在大约20台服务器的平台上使用过它...不太确定设置自己的上游存储库并签名密钥的细节,因此apt可以完全管理该程序包,但是我敢肯定,一旦有了dpkg,它就非常简单

Debconf / apt为许多类型的应用程序提供了一个很好的用例...但是,如果它是持续部署的应用程序,则您必须继续进行升级(对我而言,如果您每周进行一次以上升级,则是经验法则或5个月)...那么使用连续部署工具可能会更好... Capistrano和Fabric都很出色(使用过的Cap,经过多阶段扩展...太好了,Fabric我只听过很棒的事情)...但是我仍然不相信Cap在数百台Debian服务器上的使用...这实际上与您的项目规模有关...上面说的10或20个服务器的使用上限太慢且难以真正管理部署好(恕我直言,显然任何人都可以做,而且我还没有真正地研究过这一点,但是Ruby Rake和Capistrano等都是DAMN Slow,与Gnu Make和debconf相比不可靠,尤其是在野外)

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM