2013-10-11 15 views
14

Ho installato con gem capistranorotaie Capistrano

E nella mia directory dell'applicazione ho installato cap install

Questo comando include deploy/production.rb e deploy/staging.rb e in config/deploy.rb

mio file production.rb ha seguito

set :stage, :production 
role :all, %w{[email protected]} 
server 'sub.mydomain.com', user: 'deploy', roles: %w{web app}, my_property: :my_value 
set :ssh_options, { :forward_agent => true, :port => 1754, :keys => %w(/home/seting/.ssh/id_rsa) } 

E questo è il mio deploy.rb

set :application, 'admin' 
set :repo_url, '[email protected]:username/myadmin.git' 
namespace :deploy do 

    desc 'Restart application' 
    task :restart do 
    on roles(:app), in: :sequence, wait: 5 do 
     # Your restart mechanism here, for example: 
     # execute :touch, release_path.join('tmp/restart.txt') 
    end 
    end 

    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 

    after :finishing, 'deploy:cleanup' 

end 

E infine quando ho eseguito cap production deploy

errori ottenendo come

cap aborted! 
seting 
/home/seting/.rvm/gems/ruby-2.0.0-p247/gems/net-ssh-2.7.0/lib/net/ssh.rb:215:in `start' 
/home/seting/.rvm/gems/ruby-2.0.0-p247/gems/sshkit-1.0.0/lib/sshkit/backends/netssh.rb:156:in `ssh' 
/home/seting/.rvm/gems/ruby-2.0.0-p247/gems/sshkit-1.0.0/lib/sshkit/backends/netssh.rb:68:in `upload!' 
/home/seting/.rvm/gems/ruby-2.0.0-p247/gems/capistrano-3.0.0/lib/capistrano/tasks/git.rake:11:in `block (3 levels) in <top (required)>' 
/home/seting/.rvm/gems/ruby-2.0.0-p247/gems/sshkit-1.0.0/lib/sshkit/backends/netssh.rb:42:in `instance_exec' 
/home/seting/.rvm/gems/ruby-2.0.0-p247/gems/sshkit-1.0.0/lib/sshkit/backends/netssh.rb:42:in `run' 
/home/seting/.rvm/gems/ruby-2.0.0-p247/gems/sshkit-1.0.0/lib/sshkit/runners/parallel.rb:12:in `block (2 levels) in execute' 
Tasks: TOP => git:check => git:wrapper 
(See full trace by running task with --trace) 

Edit - 1

Inoltre non ho fatto fare eventuali installazioni speciali nel mio server per eseguire l'applicazione rails. Ho deciso di spostare prima il mio file sul server. È giusto così?

+0

Avete eseguito 'cap production deploy: setup'? Funziona o ti dà lo stesso errore? – CDub

+0

ottenendo errore come 'Non so come creare attività 'deploy: setup'' – overflow

+0

Se devo configurare qualsiasi altra cosa nel mio server o in git – overflow

risposta

12

È necessario impostare il nome del ruolo distribuire anziché impostare o in altro modo.

set :stage, :production 
set :branch, 'master' 
set :deploy_to, '/srv/www/server.com/' 
role :all, %w{[email protected]} 
server 'server.com', user: 'deploy', roles: %w{web app}, my_property: :my_value 
fetch(:default_env).merge!(rails_env: :production) 

Ecco la guide

E probabilmente desidera eseguire

cap production deploy:check 

per controllare i config.

Inoltre non c'è distribuzione: setup in capistrano 3.0

+2

Un punto eccellente. Ho perso il fatto che stava usando 3.0. Grande cattura. – CDub

+1

Ho provato il collegamento sopra indicato ma ho affrontato lo stesso problema. Potete per favore aiutarmi. – overflow

+0

come viene eseguita l'installazione sul server? manualmente? non è necessario eseguire mkdir per la struttura delle cartelle richiesta? –