問題点
Capistranoを用いて各種設定を行い、ローカル環境で
terminal
1bundle exec cap production deploy
を行った所
terminal
1#<Thread:0x00007fa3d8d94ad0@/Users/black/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/sshkit-1.21.2/lib/sshkit/runners/parallel.rb:10 run> terminated with exception (report_on_exception is true): 2Traceback (most recent call last): 3 21: from /Users/black/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/sshkit-1.21.2/lib/sshkit/runners/parallel.rb:12:in `block (2 levels) in execute' 4 20: from /Users/black/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/sshkit-1.21.2/lib/sshkit/backends/abstract.rb:31:in `run' 5 19: from /Users/black/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/sshkit-1.21.2/lib/sshkit/backends/abstract.rb:31:in `instance_exec' 6 18: from /Users/black/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/capistrano-rbenv-2.2.0/lib/capistrano/tasks/rbenv.rake:10:in `block (3 levels) in <top (required)>' 7 17: from /Users/black/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/sshkit-1.21.2/lib/sshkit/backends/abstract.rb:61:in `test' 8 16: from /Users/black/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/sshkit-1.21.2/lib/sshkit/backends/abstract.rb:148:in `create_command_and_execute' 9 15: from /Users/black/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/sshkit-1.21.2/lib/sshkit/backends/abstract.rb:148:in `tap' 10 14: from /Users/black/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/sshkit-1.21.2/lib/sshkit/backends/abstract.rb:148:in `block in create_command_and_execute' 11 13: from /Users/black/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/sshkit-1.21.2/lib/sshkit/backends/netssh.rb:130:in `execute_command' 12 12: from /Users/black/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/sshkit-1.21.2/lib/sshkit/backends/netssh.rb:177:in `with_ssh' 13 11: from /Users/black/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/sshkit-1.21.2/lib/sshkit/backends/connection_pool.rb:63:in `with' 14 10: from /Users/black/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/sshkit-1.21.2/lib/sshkit/backends/connection_pool.rb:63:in `call' 15 9: from /Users/black/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/net-ssh-6.1.0/lib/net/ssh.rb:251:in `start' 16 8: from /Users/black/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/net-ssh-6.1.0/lib/net/ssh.rb:251:in `new' 17 7: from /Users/black/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/net-ssh-6.1.0/lib/net/ssh/transport/session.rb:88:in `initialize' 18 6: from /Users/black/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/net-ssh-6.1.0/lib/net/ssh/transport/session.rb:88:in `new' 19 5: from /Users/black/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/net-ssh-6.1.0/lib/net/ssh/transport/algorithms.rb:153:in `initialize' 20 4: from /Users/black/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/net-ssh-6.1.0/lib/net/ssh/transport/algorithms.rb:278:in `prepare_preferred_algorithms!' 21 3: from /Users/black/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/net-ssh-6.1.0/lib/net/ssh/transport/algorithms.rb:278:in `map' 22 2: from /Users/black/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/net-ssh-6.1.0/lib/net/ssh/known_hosts.rb:29:in `each' 23 1: from /Users/black/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/net-ssh-6.1.0/lib/net/ssh/known_hosts.rb:29:in `each' 24/Users/black/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/net-ssh-6.1.0/lib/net/ssh/transport/algorithms.rb:278:in `block in prepare_preferred_algorithms!': undefined method `ssh_type' for nil:NilClass (NoMethodError) 25 1: from /Users/black/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/sshkit-1.21.2/lib/sshkit/runners/parallel.rb:11:in `block (2 levels) in execute' 26/Users/black/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/sshkit-1.21.2/lib/sshkit/runners/parallel.rb:15:in `rescue in block (2 levels) in execute': Exception while executing as ec2-user@<Elastic IP>: undefined method `ssh_type' for nil:NilClass (SSHKit::Runner::ExecuteError) 27(Backtrace restricted to imported tasks) 28cap aborted! 29SSHKit::Runner::ExecuteError: Exception while executing as ec2-user@<Elastic IP>: undefined method `ssh_type' for nil:NilClass 30 31 32Caused by: 33NoMethodError: undefined method `ssh_type' for nil:NilClass
と出力された。
解決すると考えた仮説
Caused by:の後述にエラー箇所が記載。
'ssh_type'というメソッドが存在しないと考え、設定した箇所を見直したが見当たらなかった。
解決に参考になりそうなソースコード
Palarel.rb
require 'thread' module SSHKit module Runner class Parallel < Abstract def execute threads = hosts.map do |host| Thread.new(host) do |h| begin backend(h, &block).run rescue ::StandardError => e e2 = ExecuteError.new e raise e2, "Exception while executing #{host.user ? "as #{host.user}@" : "on host "}#{host}: #{e.message}" end end end threads.each(&:join) end end end end
あなたの回答
tips
プレビュー