我的问题是:你们如何从多台机器上使用的[D] VCS部署相同的代码?你有一个自动部署系统,如果是这样的话是什么?它是内置的吗?有没有可以自动执行此操作的工具?我问,因为每次做一些修改,我都很无聊,最多可以更新20台机器。
P.S。:可能这属于ServerFault,但我在这里问,因为我正在考虑编写自己的定制部署系统。
答案 0 :(得分:2)
滚动你自己的rpm / deb /为你的包装,设置你自己的回购,并让你的机器定期拉。它真的不是那么难做,它已经内置到你的系统中,经过了充分的测试,并且加载了各种功能。如果你需要推动,你可以使用像Func这样的东西。
答案 1 :(得分:1)
根据您的情况,直接从版本控制系统部署可能并不总是最好的主意。你只能通过更新文件来实现这一点,混合部署和开发可能会使版本控制系统的开发使用变得不那么自由。
我看到两个可能有趣的选择。
从持续集成服务器部署。 (添加一个在每次成功构建之后运行的任务,复制文件并执行一些远程命令,我使用它来部署到测试服务器,并发现以这种方式升级生产很棘手)
使用现有的包管理器进行部署。您可以设置自己的apt(或等效的)存储库,并使用apt打包更新。让您的持续构建系统构建apt包,但让管理员决定是否应将其推送到更新服务器。我认为这是生产机器的唯一安全解决方案。
答案 2 :(得分:1)
我们使用Capistrano进行部署& Puppet用于维护服务器并避免许多开发人员/工程师修改软件包列表和配置文件时不可避免的“配置偏差”。
这两个程序都是用Ruby编写的,但我们将它们用于存储在git存储库中的PHP代码库。
答案 3 :(得分:0)
我使用deb软件包与puppet的组合来部署代码并配置一堆机器。
答案 4 :(得分:0)
在大多数项目中,我参与最后阶段一直是一个脚本化的rsync部署。所以多个目标都内置在这个过程中。