使用 capistrano 从不同的机器部署相同的项目

Using capistrano to deploy same project from different machines

我们有一个 2 人的团队编写 Rails 应用程序。从 VPS 开始,我们使用 DigitalOcean 和 capistrano 来部署它。

但是 capistrano 部署脚本只在我们两台机器中的一台上。

是否可以在第二台机器上设置 capistrano 以从中部署相同的项目?如果是,这看起来如何?

P.S。这可能非常简单,就像从第二台机器添加一些 SSH 密钥和 运行 cap production deploy 一样,因为远程 VPS 已经设置了整个基础设施。但是我们不能在生产系统上冒险。

有几种方法可以做到这一点:

  • 将您的 Cap 脚本与您的代码一起提交到存储库(这是我倾向于这样做的方式;它与 Rails 上的 Ruby 配合使用效果很好,配置结构匹配)。任何想要部署的人只需要在服务器上设置他们的 SSH 密钥。
  • 使用部署脚本创建另一个存储库;与上面类似,您需要 SSH 密钥。
  • 使用 CI 服务器进行部署。
  • 想出一些更深奥的东西。 Capistrano 非常灵活。

在我工作的地方,我们通常只是将 Capistrano 添加到 Rails 应用程序的 Gemfile,任何检查它的人都可以将它部署到他们有权访问的任何服务器。为此目的,开发人员 SSH 密钥被添加到服务器。

祝你好运!