我需要通过capistrano将Rails应用程序部署到远程Intranet上的服务器。例如,如果我要ssh到目标服务器,它将看起来像:
localhost$ ssh server1
server1$ ssh server2
这是最好的方法吗?
提前致谢。
答案 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 分开调试连接问题。