2016-06-16 8 views
1

Ich versuche, Capistrano als Proof of Concept für meine Kollegen bei der Arbeit an einem Teilprojekt, an dem ich arbeite, mit eigenen Servern einzurichten.Capistrano error - Ungültige Optionen: known_hosts

Ich habe alles konfiguriert und muss nur zum ersten Mal bereitstellen, die SSH-Weiterleitung funktioniert alles, etc ... aber ich bekomme einen Fehler, den ich nicht zuvor gesehen habe und nicht finden kann jede Bezugnahme auf, wie zu beheben:

[email protected] ~/Code/dashboard $ cap slimqa01 deploy --trace 
** Invoke slimqa01 (first_time) 
** Execute slimqa01 
** Invoke load:defaults (first_time) 
** Execute load:defaults 
** Invoke deploy (first_time) 
** Execute deploy 
** Invoke deploy:starting (first_time) 
** Execute deploy:starting 
** Invoke deploy:check (first_time) 
** Execute deploy:check 
** Invoke git:check (first_time) 
** Invoke git:wrapper (first_time) 
** Execute git:wrapper 
00:00 git:wrapper 
     01 mkdir -p /tmp/dashboard-capistrano/ 
cap aborted! 
ArgumentError: invalid option(s): known_hosts 
/usr/lib/ruby/vendor_ruby/net/ssh.rb:194:in `start' 
/var/lib/gems/2.3.0/gems/sshkit-1.11.0/lib/sshkit/backends/connection_pool.rb:59:in `call' 
/var/lib/gems/2.3.0/gems/sshkit-1.11.0/lib/sshkit/backends/connection_pool.rb:59:in `with' 
/var/lib/gems/2.3.0/gems/sshkit-1.11.0/lib/sshkit/backends/netssh.rb:149:in `with_ssh' 
/var/lib/gems/2.3.0/gems/sshkit-1.11.0/lib/sshkit/backends/netssh.rb:102:in `execute_command' 
/var/lib/gems/2.3.0/gems/sshkit-1.11.0/lib/sshkit/backends/abstract.rb:141:in `block in create_command_and_execute' 
/var/lib/gems/2.3.0/gems/sshkit-1.11.0/lib/sshkit/backends/abstract.rb:141:in `tap' 
/var/lib/gems/2.3.0/gems/sshkit-1.11.0/lib/sshkit/backends/abstract.rb:141:in `create_command_and_execute' 
/var/lib/gems/2.3.0/gems/sshkit-1.11.0/lib/sshkit/backends/abstract.rb:74:in `execute' 
/var/lib/gems/2.3.0/gems/capistrano-3.5.0/lib/capistrano/tasks/git.rake:16:in `block (3 levels) in <top (required)>' 
/var/lib/gems/2.3.0/gems/sshkit-1.11.0/lib/sshkit/backends/abstract.rb:29:in `instance_exec' 
/var/lib/gems/2.3.0/gems/sshkit-1.11.0/lib/sshkit/backends/abstract.rb:29:in `run' 
/var/lib/gems/2.3.0/gems/sshkit-1.11.0/lib/sshkit/runners/parallel.rb:12:in `block (2 levels) in execute' 
Tasks: TOP => git:check => git:wrapper 
The deploy has failed with an error: invalid option(s): known_hosts 
** Invoke deploy:failed (first_time) 
** Execute deploy:failed 

** DEPLOY FAILED 

ich denke also, Capistrano versucht, etwas mit known_hosts als Option zu laufen, aber das, was es versucht, es zu laufen gegen die Option nicht erkennen und daher stirbt Einsatz, bevor es versucht sogar, den Server zu kontaktieren, der Fehler passiert fast sofort, sobald ich auf die cap slimqa01 deploy drücken.

Jeder hatte ein ähnliches Problem?

deploy.rb unter:

# config valid only for current version of Capistrano 
lock '3.5.0' 

set :application, 'dashboard-capistrano' 
set :repo_url, '[email protected]:private/repo.git' 

# Default branch is :master 
ask :branch, `git rev-parse --abbrev-ref HEAD`.chomp 

# Default deploy_to directory is /var/www/my_app_name 
set :deploy_to, '/var/www/dashboard-capistrano' 

# Default value for :scm is :git 
set :scm, :git 

# Default value for :format is :airbrussh. 
set :format, :airbrussh 

# You can configure the Airbrussh format using :format_options. 
# These are the defaults. 
set :format_options, command_output: true, log_file: 'log/capistrano.log', color: :auto, truncate: :auto 

# Default value for :pty is false 
# set :pty, true 

# Default value for :linked_files is [] 
# set :linked_files, fetch(:linked_files, []).push('config/database.yml', 'config/secrets.yml') 

# Default value for linked_dirs is [] 
# set :linked_dirs, fetch(:linked_dirs, []).push('log', 'tmp/pids', 'tmp/cache', 'tmp/sockets', 'public/system') 

# Default value for default_env is {} 
# set :default_env, { path: "/opt/ruby/bin:$PATH" } 

# Default value for keep_releases is 5 
set :keep_releases, 5 

set :ssh_options, { 
    verbose: :debug 
} 

task :whoami do 
    on roles(:web) do 
     execute :whoami 
    end 
end 

namespace :deploy do 

    after :restart, :clear_cache do 
     on roles(:web), in: :groups, limit: 3, wait: 10 do 
      # Here we can do anything such as: 
      # within release_path do 
      # execute :rake, 'cache:clear' 
      # end 
     end 
    end 

end 

Ich habe auch den Fehler auf nur einzelne Aufgaben laufen zu:

[email protected] ~/Code/dashboard $ cap slimqa01 whoami 
00:00 whoami 
     01 whoami 
(Backtrace restricted to imported tasks) 
cap aborted! 
ArgumentError: invalid option(s): known_hosts 

Tasks: TOP => whoami 
(See full trace by running task with --trace) 
+0

Können Sie Ihren 'deploy.rb' posten? – patkoperwas

+0

@patkoperwas Posted only –

+1

Das ist sehr merkwürdig, welche Version von 'net-ssh' verwendet wird, da die Zeile, in der die Überprüfung gegen VALID_OPTIONS und': known_hosts ausgelöst wurde, in der aktuellen Version ein VALID_OPTION ist. Es scheint, dass dies als eine Option in 3.1 hinzugefügt wurde. Versuche das zu deinem Gemfile hinzuzufügen? ('gem net-ssh,"> = 3.1 "') – engineersmnky

Antwort

3

Ich hatte dasselbe Problem.
Nach dem Update net-ssh von 3.0.2 auf 3.1.1, es funktioniert.

gem update net-ssh

+0

Worte können nicht ausdrücken, wie dankbar ich dafür bin. Witze beiseite, vielen Dank, es hat funktioniert! –