Capistrano Net::SSH.start 弃用警告
Capistrano Net::SSH.start deprecating watning
刚刚升级到最新的 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
似乎一切正常。
我从 3.5.0 升级到当前版本 (3.91.)。 deploy.rb有什么需要改的吗?
例如在声明您的服务器时config/deploy/production.rb
,确保明确设置用户名。我的猜测是您没有指定,因此出现警告。
例如:
server "example.com", user: "deploy", roles: %w[app web]
您可以测试用户名是否被 运行 接受:
$ cap production doctor:servers
Servers (1)
deploy@example.com [:app, :web]
每个服务器的用户名也可以通过 :ssh_options
全局覆盖。如果您设置 :ssh_options
,请确保这些选项不包含 user: nil
.
之类的内容
您可以通过运行检查:ssh_options
的值:
$ cap production doctor:variables
刚刚升级到最新的 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
似乎一切正常。
我从 3.5.0 升级到当前版本 (3.91.)。 deploy.rb有什么需要改的吗?
例如在声明您的服务器时config/deploy/production.rb
,确保明确设置用户名。我的猜测是您没有指定,因此出现警告。
例如:
server "example.com", user: "deploy", roles: %w[app web]
您可以测试用户名是否被 运行 接受:
$ cap production doctor:servers
Servers (1)
deploy@example.com [:app, :web]
每个服务器的用户名也可以通过 :ssh_options
全局覆盖。如果您设置 :ssh_options
,请确保这些选项不包含 user: nil
.
您可以通过运行检查:ssh_options
的值:
$ cap production doctor:variables