2013-08-30 41 views
5

Tôi đang cố gắng triển khai ứng dụng 4 đường ray của tôi với capistrano bằng cách sử dụng kho lưu trữ git từ xa trên máy chủ của tôi. Repo git của tôi nằm trên cùng một máy chủ mà tôi đang triển khai ứng dụng của mình. Khi bao giờ tôi cố gắng một cap deploy tôi nhận được lỗi nàyTại sao tôi nhận được "Quyền bị từ chối" khi cố gắng triển khai giới hạn?

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 

Khi bao giờ tôi nhập mật khẩu của tôi ở trong đó nói rằng sự cho phép từ chối và tôi chắc chắn rằng mật khẩu là chính xác. Đây là tôi 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 

Tôi có thể ssh vào máy chủ của tôi từ dòng lệnh với một phím ssh, do đó, thats làm việc tốt. Bất cứ ai biết vấn đề là gì? Cảm ơn.

Trả lời

5

Điều này đã hiệu quả đối với tôi trong quá khứ. Hy vọng nó hoạt động cho bạn:

ssh-add /.ssh/id_rsa 
+0

Tôi sẽ đặt nó ở đâu? – oobie11

+0

Hãy thử từ máy attemtping để sao chép repo. Không làm tổn thương để làm điều đó trên cả hai mặc dù. – kikuchiyo

+1

OH MY GOD !!! Cảm ơn bạn, tôi đã đấu tranh với điều này trong nhiều ngày! Tôi chạy nó trên máy phát triển của mình. Chính xác thì 'ssh_add/.shh/id_rsa' đang làm gì? – oobie11

Các vấn đề liên quan