如果我想使用apt软件包将我的Web应用程序部署到不同的Linux服务器,我应该采取哪些步骤?从PHP / MySQL应用程序开始,我希望能够将其安装为这样的包:
apt-get update
apt-get install mywebapp-package
我想我必须在某个地方设置一个存储库并将我的软件包添加到它,但这是如何工作的?如何创建包本身?我需要做什么才能让任何服务器找到我的存储库?一些谷歌搜索只发现混乱的信息,也许我正在寻找错误的流行语。任何帮助将不胜感激!
答案 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
的非常简单的makefileobjects = 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>
特别是对于一般的服务器自动化,我建议您查看Puppet和Chef,这两个都是非常可行的工具。不使用,但我们所有的管理脚本都在Ruby中,而且Chef的刀具工具非常方便以脚本方式配置服务器
答案 1 :(得分:2)
我建议使用Capistrano或Fabric之类的内容来部署应用程序而不是apt-get。这些工具用于部署应用程序,并且能够部署到多个服务器。