2

我正在为安全的高可用性环境中的 Rails 制定部署策略和脚本。我们当前的脚本是自制的 shell 脚本。我们希望使用更标准的流程。但...

我有点难以相信拥有高可用性生产环境的任何人都会从代码树的实例运行部署。如果我要这样做,我会在那里拥有代码树,只是为了部署,因为我无法从开发环境访问我的生产环境。

我不会使用 vagrant,因为我认为它不适合生产。

我不打算使用虚拟盒子,因为我不想要开销。

对于如何使环境高度可用,我确实有一个单独的计划,所以这个问题与此无关。

我只需要一种体面的方式来将 Rails 部署到安全的生产环境中。对我来说,在我的生产 LAN 上的机器上为每个项目创建一个特殊的树实例似乎很愚蠢,这样我就可以部署到其他机器上,特别是因为部署将从中获取要使用的应用程序版本使用标签的存储库。

任何人都可以帮忙吗?有战争故事吗?我改变观点的明确理由?

编辑:评论中的每个问题:

生产有一个网络层,即ssl、防火墙、基于名称的转发。应用程序层是 rails 所在的位置,只有当您通过网络层(或 vpn-ed)进行 ssh-ed 以进行生产监控或管理时才能访问,但我不能直接从我的开发框中进行 scp 或 rsync 或 ssh . db 层可从应用层服务器访问。

谢谢!

4

1 回答 1

1

分布式部署有一个相对较新的部署框架,称为Juju。我从来没有将它用于 Rails。我用于大型 Rails 部署的唯一工具是 chef,但我和一个朋友正在将 Juju 用于其他一些 (jvm) 项目,它非常强大。

这是一个很好的开始使用 rails 和 juju 的教程。

您可以(当前)在 github 上找到一个rails juju 魅力

juju 的优点之一是您可以拥有一个服务器来管理到其他服务器的部署。这样您就不必打开服务器本地机器进行部署。

祝你好运!

于 2013-07-24T14:59:24.390 回答