使用源代码自动化服务器设置

我有一个centOS5.4服务器设置,我有一个“构build脚本”。 服务器作为运行apache + PHP的web服务器运行,用于我们的专有应用程序。

构build脚本,基本上做了我需要的基本操作系统和库的kickstart安装。 然后我必须进入并复制为我们的环境构build的自定义apache和PHP二进制文件。 最后,我复制我们的源代码库。

我遇到了一些问题,并希望改进它的build议:

1)如果我build立一个新的服务器,我希望一切都与其他服务器相同。 但是在安装其他服务器的时候,我立即进行了百胜的更新。 如果我现在在新的服务器上这样做,各种types的库将会不同。

2)手动复制一切糟透了。 我即将构build一个shell脚本,它将rscync和scp所有适当的源代码和configuration文件,但我想先看看是否有更好的方法。

3)创build一个硬盘驱动器的磁盘转储映像,然后只是DD到新的服务器上是理想的。 但是,对于几个服务器,我正在使用镜像模式的软件RAID。 而且,硬件稍有不同。 这很重要吗? 将镜像模式突袭configuration刚刚拿起,并重新启动后从第二个磁盘上重buildRAIDconfiguration? 其他服务器硬件是否会与我的基本安装冲突?

希望有人来自左边的领域,只是说:“没有白痴,只是用户服务器克隆企业2k + +;)”。 我会喜欢那个产品。 提前感谢您的回答。

CentOS是一个企业级的操作系统。 软件包更新不增加主要版本,往往有修复移植,并且在发布之前已经过很好的testing。 风险很小。 为了降低风险,请自行testing更新,针对他们的应用程序进行testing,然后安排整个基础架构的定期更新。

把你的应用程序放在文件服务器上,编写一个构build脚本来部署应用程序。 有些人喜欢使用自己喜欢的打包工具来部署内部的自定义应用程序,但可以像tarball或recursion传输一样简单。

创build图像是越来越不常见的东西。 使用时,通常应用于工作站或具有更多静态构build标准的环境。 从历史上看,它被用于build立大量服务器的大型企业,因为从图像构build起来更快。 我通常避免使用UNIX服务器,但如果构build时间exception敏感,我将开始与其他方法进行基准testing。

有大量的configurationpipe理工具可用来帮助维护您的标准。 Spacewalk是RedHat 卫星服务器的开源代码。

我在下面的文章中详细介绍了build立服务器的构build和标准:

跨多个服务器pipe理应用程序,或PXE与cfEngine / Chef / Puppet

1)只要您在所有机器上执行定期更新,这不会是一个问题。 我知道你提到设置“机器”。 在这里,我们使用虚拟化 – 我已经创build了一个“基础”容器并保持closures状态 – 使用Virtuozzo提供的工具,我可以一次又一次“克隆”这个映像。 当我需要更新克隆时,启动它,运行更新,然后closures它。 虽然这对于所有新的容器都很好,但是我仍然需要对所有其他正在运行的容器执行更新(尽pipe我可以select只保留相同的“陈旧”图像并进行复制)。我所获得的是我需要的软件configuration(所有应用程序,代码,二进制文件等部署和configuration)和旋转“新服务器”是一个快照

2)你有没有想过也许从你的源代码构build一个RPM? 虽然编写实际的spec文件已经被淘汰是一场噩梦,如果你只是运行PHP代码,实际上没有任何东西可以“编译”,这意味着它只是写一个spec文件,从RPM中获取源文件并放置它们在正确的位置,除了可能运行Apache /您的应用程序的几个安装脚本。 这可以帮助您跟踪哪个服务器正在运行您的代码版本,并提供一种更好地维护您的基础架构的方法。

3)我真的不能回答你的问题的部分。