2012-06-23 27 views
5

Cuando intento enviar ssh a un servidor, puedo hacerlo ya que mi clave id_rsa.pub se agrega a las claves autorizadas en el servidor.Capistrano pregunta por la contraseña de SSH al implementar desde la máquina local al servidor

Ahora cuando intento de implementar mi código a través de Capistrano al servidor de mi carpeta de proyecto local, el servidor solicita una contraseña.

Soy incapaz de entender lo que podría ser el problema si soy capaz de ssh e incapaz de implementar en el mismo servidor.

$ tapa de despliegue: configuración de la escritura

"no seed data" 
triggering start callbacks for `deploy:setup' 
* 13:42:18 == Currently executing `multistage:ensure' 
*** Defaulting to `development' 
* 13:42:18 == Currently executing `development' 
* 13:42:18 == Currently executing `deploy:setup' 
triggering before callbacks for `deploy:setup' 
* 13:42:18 == Currently executing `db:configure_mongoid' 
* executing "mkdir -p /home/deploy/apps/development/flyingbird/shared/config" 
servers: ["dev1.noob.com", "176.9.24.217"] 
Password: 

Cap:

# gem install capistrano capistrano-ext capistrano_colors 
begin; require 'capistrano_colors'; rescue LoadError; end 
require "bundler/capistrano" 

# RVM bootstrap 
# $:.unshift(File.expand_path('./lib', ENV['rvm_path'])) 
require 'rvm/capistrano' 
set :rvm_ruby_string, 'ruby-1.9.2-p290' 
set :rvm_type, :user # or :user 

# Application setup 
default_run_options[:pty] = true # allow pseudo-terminals 
ssh_options[:forward_agent] = true # forward SSH keys (this will use your SSH key to get the code from git repository) 
ssh_options[:port] = 22 
set :ip, "dev1.noob.com" 
set :application, "flyingbird" 

set :repository, "repo-path" 
set :scm, :git 
set :branch, fetch(:branch, "master") 

set :deploy_via, :remote_cache 
set :rails_env, "production" 
set :use_sudo, false 
set :scm_username, "user" 
set :user, "user1" 


set(:database_username) { application } 
set(:production_database) { application + "_production" } 
set(:staging_database) { application + "_staging" } 
set(:development_database) { application + "_development" } 


role :web, ip      # Your HTTP server, Apache/etc 
role :app, ip       # This may be the same as your `Web` server 
role :db, ip, :primary => true # This is where Rails migrations will run 


# Use multi-staging 
require "capistrano/ext/multistage" 
set :stages, ["development", "staging", "production"] 
set :default_stage, rails_env 

before "deploy:setup", "db:configure_mongoid" 

# Uncomment if you use any of these databases 
after "deploy:update_code", "db:symlink_mongoid" 
after "deploy:update_code", "uploads:configure_shared" 
after "uploads:configure_shared", "uploads:symlink" 


after 'deploy:update_code', 'bundler:symlink_bundled_gems' 
after 'deploy:update_code', 'bundler:install' 
after "deploy:update_code", "rvm:trust_rvmrc" 

# Use this to update crontab if you use 'whenever' gem 
# after "deploy:symlink", "deploy:update_crontab" 

if ARGV.include?("seed_data") 
    after "deploy", "db:seed" 
else 
    p "no seed data" 
end 


    #Custom tasks to handle resque and redis restart 
    before "deploy", "deploy:stop_workers" 
    after "deploy", "deploy:restart_redis" 
    after "deploy", "deploy:start_workers" 
    after "deploy", "deploy:cleanup" 

    'Create symlink for public uploads' 
    namespace :uploads do 
     task :symlink do 
     run <<-CMD 
      rm -rf #{release_path}/public/uploads && 
      mkdir -p #{release_path}/public && 
      ln -nfs #{shared_path}/public/uploads #{release_path}/public/uploads 
     CMD 
     end 
    task :configure_shared do 
    run "mkdir -p #{shared_path}/public" 
    run "mkdir -p #{shared_path}/public/uploads" 
    end 
end 


    namespace :rvm do 
     desc 'Trust rvmrc file' 
     task :trust_rvmrc do 
     run "rvm rvmrc trust #{current_release}" 
     end 
    end 



     namespace :db do 

     desc "Create mongoid.yml in shared path" 
      task :configure_mongoid do 
      db_config = <<-EOF 
      defaults: &defaults 
      host: localhost 

     production: 
      <<: *defaults 
      database: #{production_database} 
     staging: 
      <<: *defaults 
      database: #{staging_database} 
      EOF 

      run "mkdir -p #{shared_path}/config" 
      put db_config, "#{shared_path}/config/mongoid.yml" 
     end 

      desc "Make symlink for mongoid.yml" 
      task :symlink_mongoid do 
      run "ln -nfs #{shared_path}/config/mongoid.yml #{release_path}/config/mongoid.yml" 
      end 

      desc "Fill the database with seed data" 
      task :seed do 
       run "cd #{current_path}; RAILS_ENV=#{default_stage} bundle exec rake     db:seed" 
       end 

      end 

      namespace :bundler do 
      desc "Symlink bundled gems on each release" 
      task :symlink_bundled_gems, :roles => :app do 
      run "mkdir -p #{shared_path}/bundled_gems" 
      run "ln -nfs #{shared_path}/bundled_gems #{release_path}/vendor/bundle" 
      end 






      desc "Install bundled gems " 
       task :install, :roles => :app do 
       run "cd #{release_path} && bundle install --deployment" 
       end 
      end 



      namespace :deploy do 
       task :start, :roles => :app do 
       run "touch #{current_path}/tmp/restart.txt" 
      end 

      desc "Restart the app" 
       task :restart, :roles => :app do 
       run "touch #{current_path}/tmp/restart.txt" 
      end 

      desc "Start the workers" 
       task :stop_workers do 
       run "cd #{current_path}; RAILS_ENV=#{default_stage} bundle exec rake         resque:stop_workers" 
      end 

      desc "Restart Redis server" 
       task :restart_redis do 
       "/etc/init.d/redis-server restart" 
      end 

      desc "Start the workers" 
       task :start_workers do 
        run "cd #{current_path}; RAILS_ENV=#{default_stage} bundle exec rake resque:start_workers" 
      end 


     end 
+0

seguro de lo agregaré @ slhck – Bijendra

+0

Ya está presente.. ssh_options [: forward_agent] = true – Bijendra

+0

@slhck solo checa la edición. – Bijendra

Respuesta

1

Es necesario especificar tanto el usuario SSH y la clave privada para la autenticación:

es decir:

set :user, "deploy" 
set :ssh_key, "deploy.pem" 

If y sted utilizando múltiples etapas Capistrano, que parece que son, en su archivo stages.yml para este entorno, agregar las claves:

user:  "deploy" 
ssh_key: "deploy.pem" 
+0

disculpas por el retraso ... realmente se perdió esto .. :( – Bijendra

Cuestiones relacionadas