Capistrano通过服务器链进行部署

时间:2011-01-27 22:06:18

标签: ruby-on-rails capistrano

我需要通过capistrano将Rails应用程序部署到远程Intranet上的服务器。例如,如果我要ssh到目标服务器,它将看起来像:

localhost$ ssh server1
server1$ ssh server2

这是最好的方法吗?

提前致谢。

3 个答案:

答案 0 :(得分:5)

Capistrano让这很容易。只需使用

set :gateway, "user@server1:port"
在config / deploy.rb中

答案 1 :(得分:2)

我建议使用:

set :ssh_options, { :forward_agent => true }
set :gateway, "user@host:port"

答案 2 :(得分:1)

显然,从 v3 开始,capistrano 删除了网关选项。相反,可以使用如下所示的跳转代理:https://github.com/capistrano/sshkit#proxying

以下是它在配置文件(例如 production.rb)中的外观:

<textarea
  {...register('content', {
    required: { value: true, message: 'content is required' },
    maxLength: { value: 20000, message: 'content is too long' },
    minLength: { value: 10, message: 'content is too short' },
  })}
/>

顺便说一句,您可以使用 ssh 命令的 -J 选项指定跳转代理,因此您可以与 capistrano 分开调试连接问题。