Capistrano Net::SSH.start 弃用 watning

sub*_*bbu 2 ssh capistrano ruby-on-rails capistrano3

刚刚升级到最新的 capistrano,我的 rails 部署都在打印这个警告 -

/home/vivek/.rvm/gems/ruby-2.4.1/gems/sshkit-1.14.0/lib/sshkit/backends/connection_pool.rb:59:in `call': Passing nil, or [nil] to Net::SSH.start is deprecated for keys: user
Run Code Online (Sandbox Code Playgroud)

一切似乎都在起作用。

我从 3.5.0 升级到当前版本 (3.91.)。在deploy.rb 中有什么需要改变的吗?

Mat*_*son 7

在 eg 中声明您的服务器时config/deploy/production.rb,请确保明确设置用户名。我的猜测是你没有指定一个,因此警告。

例如:

server "example.com", user: "deploy", roles: %w[app web]
Run Code Online (Sandbox Code Playgroud)

您可以通过运行来测试用户名是否被接受:

$ cap production doctor:servers

Servers (1)

    deploy@example.com [:app, :web]
Run Code Online (Sandbox Code Playgroud)

每个服务器的用户名也可以通过:ssh_options. 如果您设置了:ssh_options,请确保这些选项不包含类似user: nil.

您可以:ssh_options通过运行来检查的值:

$ cap production doctor:variables
Run Code Online (Sandbox Code Playgroud)