2013-08-30 23 views
5

Sto cercando di distribuire la mia app rails 4 con capistrano usando un repository git remoto sul mio server. Il mio repository git è sullo stesso server in cui sto distribuendo la mia app. Quando mai provo un cap deploy ottengo questo errorePerché ricevo un "Permesso negato" quando provo a limitare la distribuzione?

my/local/rails/app/directory$ cap deploy 
    triggering load callbacks 
    * 2013-08-30 15:51:20 executing `deploy' 
    * 2013-08-30 15:51:20 executing `deploy:update' 
** transaction: start 
    * 2013-08-30 15:51:20 executing `deploy:update_code' 
    updating the cached checkout on all servers 
    executing locally: "git ls-remote ssh://[email protected]/var/repos/test.git master" 
    command finished in 684ms 
    * executing "if [ -d /var/www/test/www/shared/cached-copy ]; then cd /var/www/test/www/shared/cached-copy && git fetch origin && git fetch --tags origin && git reset --hard 9de1df43a7959b953dc0b35c2ab27ba84698602a && git clean -d -x -f; else git clone -b master ssh://[email protected]/var/repos/test.git /var/www/test/www/shared/cached-copy && cd /var/www/test/www/shared/cached-copy && git checkout -b deploy 9de1df43a7959b953dc0b35c2ab27ba84698602a; fi" 
    servers: ["myserver.com"] 
    [myserver.com] executing command 
** [myserver.com :: out] Cloning into '/var/www/test/www/shared/cached-copy'... 
** [myserver.com :: out] 
** [myserver.com :: out] [email protected]'s password: 
Password: 
** [myserver.com :: out] 
** [myserver.com :: out] Permission denied, please try again. 
** [email protected]'s password: 
Password: 
** [myserver.com :: out] 
** [myserver.com :: out] Permission denied, please try again. 
** [email protected]'s password: 
Password: 
** [myserver.com :: out] 
** [myserver.com :: out] Permission denied (publickey,password). 
** fatal: Could not read from remote repository. 
** 
** Please make sure you have the correct access rights 
** and the repository exists. 
    command finished in 18891ms 
*** [deploy:update_code] rolling back 
    * executing "rm -rf /var/www/test/www/releases/20130830225140; true" 
    servers: ["myserver.com"] 
    [myserver.com] executing command 
    command finished in 700ms 
failed: "rvm_path=/usr/local/rvm /usr/local/rvm/bin/rvm-shell 'ruby-2.0.0-p247' -c 'if [ -d /var/www/test/www/shared/cached-copy ]; then cd /var/www/test/www/shared/cached-copy && git fetch origin && git fetch --tags origin && git reset --hard 9de1df43a7959b953dc0b35c2ab27ba84698602a && git clean -d -x -f; else git clone -b master ssh://[email protected]/var/repos/test.git /var/www/test/www/shared/cached-copy && cd /var/www/test/www/shared/cached-copy && git checkout -b deploy 9de1df43a7959b953dc0b35c2ab27ba84698602a; fi'" on myserver.com 

Quando mai inserisco la mia password in esso dice permesso negato e sono sicuro che la password è corretta. Ecco il mio deploy.rb

require 'bundler/capistrano' 
require 'rvm/capistrano' 

set :user, 'user' 
set :domain, 'myserver.com' 
set :application, "blog" 
set :repository, "ssh://[email protected]/var/repos/test.git" 
set :scm_passphrase, "password" 
set :deploy_to, '/var/www/test/www' 
set :deploy_via, :remote_cache 
set :scm, :git 
set :branch, 'master' 
set :scm_verbose, true 
set :use_sudo, false 
set :normalize_asset_timestamps, false 
set :rails_env, :production 

set :rvm_type, :system 
set :rvm_ruby_string, 'ruby-2.0.0-p247' 
# set :scm, :git # You can set :scm explicitly or Capistrano will make an intelligent guess based on known version control directory names 
# Or: `accurev`, `bzr`, `cvs`, `darcs`, `git`, `mercurial`, `perforce`, `subversion` or `none` 

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

default_run_options[:pty] = true 
ssh_options[:forward_agent] = true 
after "deploy", "deploy:migrate", "deploy:restart" 
after "deploy:update", "deploy:restart" 

# if you want to clean up old releases on each deploy uncomment this: 
# after "deploy:restart", "deploy:cleanup" 

# if you're still using the script/reaper helper you will need 
# these http://github.com/rails/irs_process_scripts 

# If you are using Passenger mod_rails uncomment this: 
# namespace :deploy do 
# task :start do ; end 
# task :stop do ; end 
# task :restart, :roles => :app, :except => { :no_release => true } do 
#  run "#{try_sudo} touch #{File.join(current_path,'tmp','restart.txt')}" 
# end 
# end 

namespace :deploy do 
    desc "cause Passenger to restart" 
    task :restart do 
     run "touch #{current_path}/tmp/restart.txt" 
    end 
end 

Sono in grado di ssh nel mio server dalla riga di comando con una chiave SSH, di modo che è lavorando bene. Qualcuno sa qual è il problema? Grazie.

risposta

5

Questo ha funzionato per me in passato. Spero che funzioni per voi:

ssh-add /.ssh/id_rsa 
+0

Dove lo metterei? – oobie11

+0

Provare dal tentativo del computer di clonare il repository. Non fa male a farlo su entrambi però. – kikuchiyo

+1

OH MIO DIO !!! Grazie, ho lottato con questo per giorni! L'ho eseguito sulla mia macchina di sviluppo. Che cosa fa esattamente 'ssh_add/.shh/id_rsa'? – oobie11

Problemi correlati