twk*_*twk 17 deployment lamp release release-management
我有一些批处理过程在Linux/PHP网站的幕后运行.它们的数量和复杂性开始增长,因此我想对它们进行少量处理.
我的源代码树有一堆cpp文件和脚本,按开发组织但不考虑部署.编译完所有可执行文件后,我需要在一组机器上放置各种脚本和二进制文件.不同的计算机需要为其批处理过程使用不同的可执行文件,脚本和配置文件.我也有一些我写的属于每台机器的工具.目前,此部署过程是手动且容易出错的.
我猜我最终会得到一个在源代码树根目录下运行的脚本,并构建一个包含任何机器所需的所有内容的小树.然后,我将把它同步到适当的机器上.但我很好奇其他人是如何处理这类问题的.有任何想法吗?
Pet*_*aat 19
这里有几类工具.有些人使用这些类别的工具组合.我有时会使用Puppet和Capistrano.请参阅Puppet或Capistrano - 使用适合作业的工具进行讨论.
旨在部署应用程序的脚本工具:
使用工具这一类的一般模式是,你创建一个脚本和/或配置文件,经常带套类似的Makefile的命令,该工具将ssh到您的生产中,做一个源代码签出,并运行无论其他步骤是否必要.
此区域中的工具通常具有回滚到先前版本的工具.所以他们会检查你的源到发布/目录,并创建一个从"当前"到"发布/"的符号链接,如果一切顺利的话.如果出现问题,您可以通过运行将删除"current"并将其链接到先前版本/目录的命令恢复到以前的版本.
获取文件到生产框的选项:
包装工具
使用操作系统的打包系统生成包含应用程序文件的包.创建一个主包,其中包含您需要的其他包作为依赖项.所述RubyWorks系统是这样的一个例子,用于部署一个Rails堆栈和示例应用程序.然后是使用apt,yum/rpm,Windows msi或其他任何部署给定版本的问题.回滚涉及卸载并重新安装旧版本.
旨在安装应用程序/配置和维护一组系统的常规工具
这些工具并不专门针对部署Web应用程序的问题,而是针对一组服务器或整个公司的工作站部署/维护Apps/Configs的更普遍的问题.它们更多地针对系统管理员,而不是Web开发人员,尽管他们都发现它们很有用.
有关此类别和此类别中的更多工具的比较,请参阅Wikipedia文章" 开源配置管理软件的比较".
按照您的发行版使用的格式创建您自己的软件包,例如 Debian 软件包 (.deb)。这些可以复制到每台计算机并手动安装,或者您可以设置自己的存储库,并将其添加到源列表中。
应该设置您的包,以便它们包含的脚本参考配置文件,该文件在每个主机上都不同,具体取决于每个主机上需要运行的脚本。
为了将它们结合在一起,您可以创建一个元包,该元包仅依赖于您创建的每个其他包。这样,当您设置一台新服务器时,您将安装该元包,并且其他包将作为依赖项引入。
虽然这个过程听起来有点复杂,但如果您有很多脚本和很多要部署它们的主机,从长远来看,它确实可以带来回报。
| 归档时间: |
|
| 查看次数: |
24674 次 |
| 最近记录: |