部署到多个服务器

时间:2008-09-18 20:11:59

标签: php deployment

我必须将我的php / html / css / etc代码部署到多个服务器,我正在寻找可以轻松安全地部署到多个服务器的软件选项。

如果它可以绑定到我的SVN中也有帮助。

有什么建议吗?

11 个答案:

答案 0 :(得分:12)

Capistrano非常方便。有一些人使用它(123)来部署PHP代码,这可以通过执行quick search来证明。

答案 1 :(得分:4)

使用ssh设置无密码的publickey身份验证可以让您快速将文件scp到任何服务器(或通过shell脚本自动执行)。

这是一个简单的教程:http://rcsg-gsir.imsb-dsgi.nrc-cnrc.gc.ca/documents/internet/node31.html

答案 2 :(得分:2)

如果您在Redhat或Debian上运行,请考虑将您的代码打包成RPM或Debs。然后构建一个yum或dpkg存储库并将您的包放在那里。然后,您可以使用系统的软件包管理来执行升级/回滚等。您甚至可以使用puppet来自动执行此过程。

如果要将其绑定到subversion,可以为每个新版本创建一个分支。当新分支出现在目录中时,使用提交脚本构建RPM。

答案 3 :(得分:2)

我是第二个卡皮斯特拉诺。它非常强大和灵活。我们当前的项目使用Capistrano部署到不同的服务器以及多个服务器。我们将两个参数传递给cap命令: 1)要运行的机器特定配置选项集的名称 2)要运行的动作的名称

最终看起来像这样:

cap -f deploy.rb live deploy

cap -f deploy.rb dev deploy

当然,默认的用例 - 一次部署到很多机器 - 对Capistrano来说是一个轻而易举的事实,你不需要在你部署的机器上安装Capistrano。总而言之,美味的技术。

答案 4 :(得分:1)

之前我曾使用Automated Build Studio来完成类似的任务。它为您提供了很多灵活性。

答案 5 :(得分:1)

我同意 - 设置你的svn树,并在ssh上使用rsync将树复制到远程位置。 rsync将使其快速有效,只复制更改而不是完整文件。

您希望将svn树导出到某个目录,然后从那里将rsync导出到远程主机的目录树。

答案 6 :(得分:1)

我也忘了提一下,如果你使用rsync,你可以设置rsync来使用ssh,这样你就只会传输已经改变的文件,节省了时间和带宽。

答案 7 :(得分:1)

您也可以使用免费的kwateeSDCM并允许通过ssh进行远程安装。它还使您能够从中央位置管理特定于服务器的配置,并使升级无缝。

答案 8 :(得分:0)

我已经使用Subversion标记了有关如何部署网站的帖子:http://blog.lavablast.com/post/2008/02/I2c-for-one2c-welcome-our-new-revision-control-overlords!.aspx

答案 9 :(得分:0)

我发现capistrano一旦安装就很容易使用。对于更复杂的环境,配置文件起初可能有点令人困惑,但很快就会变得有价值。我在生产中部署到14台服务器。我还使用多个环境部署到登台服务器。有一个怪癖,Ruby中存在一个错误,它会破坏并行部署,但对于svn导出来说,串行也不错。

答案 10 :(得分:0)

Capistrano设置太复杂了。我们发现KwateeSDCM使用简单的Web界面并且没有脚本非常简单。我们已经在Windows和Linux服务器上完成了Dev和QA配置的部署配置。