Capistrano versión 3 actualización confuso

Estoy luchando con la actualización de capistrano v2 a v3 durante 5 días. Estoy intentando implementar desde mi equipo local al entorno de desarrollo de instancias ec2. No puedo moverme más. Mi rastro está aquí

Despliegue de $ cap desarrollo: cheque

INFO [429e612c] Running /usr/bin/env mkdir -p /tmp/my_app_name/ on 70.22.320.14 DEBUG [429e612c] Command: ( RVM_BIN_PATH=~/.rvm/bin /usr/bin/env mkdir -p /tmp/my_app_name/ ) INFO [429e612c] Finished in 6.208 seconds with exit status 0 (successful). DEBUG Uploading /tmp/my_app_name/git-ssh.sh 0.0% INFO Uploading /tmp/my_app_name/git-ssh.sh 100.0% INFO [c3a41f2e] Running /usr/bin/env chmod +x /tmp/my_app_name/git-ssh.sh on 70.22.320.14 DEBUG [c3a41f2e] Command: ( RVM_BIN_PATH=~/.rvm/bin /usr/bin/env chmod +x /tmp/my_app_name/git-ssh.sh ) INFO [c3a41f2e] Finished in 0.720 seconds with exit status 0 (successful). DEBUG [c5891dcc] Running /usr/bin/env git ls-remote git@github.com:example/webapp.git on 70.22.320.14 DEBUG [c5891dcc] Command: ( RVM_BIN_PATH=~/.rvm/bin GIT_ASKPASS=/bin/echo GIT_SSH=/tmp/my_app_name/git-ssh.sh /usr/bin/env git ls-remote git@github.com:example/webapp.git DEBUG [c5891dcc] /usr/bin/env: DEBUG [c5891dcc] git DEBUG [c5891dcc] : No such file or directory DEBUG [c5891dcc] DEBUG [c5891dcc] Finished in 0.664 seconds with exit status 127 (failed). 

config / deploy.rb

 set :application, 'my_app_name' set :repo_url, '.' set :branch, 'master' set :scm, :git set :deploy_to, "/home/ec2-user/capistrano-3/}" set :ssh_options, {:keys => ["#{ENV['HOME']}/.ssh/my_pem.pem"], :forward_agent =>true} set :keep_releases, 5 set :rvm_type, :user set :rvm_ruby_version, '2.0.0-p353' set :default_env, { rvm_bin_path: '~/.rvm/bin' } set :whenever_command, "bundle exec whenever" set :git_shallow_clone, 1 set :deploy_via, :copy set :log_level, :debug set :pty, true set :linked_files, %w{config/database.yml} SSHKit.config.command_map[:rake] = "bundle exec rake" SSHKit.config.command_map[:rails] = "bundle exec rails" 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 

config / deploy / development.rb

 set :stage, :development role :app, %w{ec2-user@70.22.320.14} role :web, %w{ec2-user@70.22.320.14} role :db, %w{ec2-user@70.22.320.14} role :all, %w{ec2-user@70.22.320.14} server 'ec2-user@70.22.320.14', user: 'ec2-user', roles: %w{web app} 

Capfile

 require 'capistrano/setup' require 'capistrano/deploy' require 'capistrano/bundler' require 'capistrano/rails/assets' require 'capistrano/rails/migrations' Dir.glob('lib/capistrano/tasks/*.cap').each { |r| import r } 

Mis problemas:

  1. Mi ruta de git no es aceptada

  2. ssh problemas key

Las teclas git y ssh funcionan con capistrano 2 para la misma aplicación que estoy implementando. La actualización a capistrano v3 da un dolor de cabeza mayor. ¿Qué puedo hacer consecutivamente? Amablemente guiarme a través de los pasos correctos

He pasado un time luchando con capistrano3 y aquí hay algunos consejos, probablemente puedan ser útiles:

1) Manual oficial capistranorb.com . Hay consejos sobre lo que debe hacer consecutivamente. La sección sobre authentication y autorización también es útil. Hay algunos consejos sobre la configuration de ssh en la estación de trabajo y en el server. Seguí esta guía y me ayudó. Intenta build tu deploy.rb siguiendo esta guía desde cero.

También guías útiles: guide1 , guide2

2) Aquí está mi Capfile. Observe rvm1 / capistrano3 y capistrano3 / unicornio. Gemas muy útiles

  require 'capistrano/setup' require 'capistrano/deploy' require 'capistrano3/unicorn' require 'rvm1/capistrano3' require 'capistrano/rvm' require 'capistrano/bundler' require 'capistrano/rails/assets' require 'capistrano/rails/migrations' 

3) Puedes probar el command:

 ssh ubuntu@ec2....amazonaws.com -v 

o

 ssh git@github.com -v # from your EC2 server 

para entender lo que sucede cuando intentas conectarte a tu server EC2. Probablemente el problema con la key de pem? Crea la key .pub e intenta usarla. No olvides agregarlo a ~ / ssh / authorized_keys

 cat id_rsa_aws.pub | ssh ubuntu@....amazonaws.com "cat >> /home/ubuntu/.ssh/authorized_keys" 

configura tu ssh-agent y no olvides agregar ~ / .bash_profile algo como esto:

 eval $(ssh-agent) ssh-add ~/.ssh/id_rsa_deploy_github ssh-add ~/.ssh/id_rsa_digital_ocean 

Si tienes problemas con ssh, probablemente deberías mirar este ssh-guide

También puedes ver mi aplicación, donde estoy usando capistrano3. Probablemente puedas encontrar algo para ti: #project

Ps En algunos VPS, git no está instalado, por lo que es buena idea verificar:

 deployer@ec2***.amazonaws.com$ which git 

si no se encuentra:

 deployer@ec2***.amazonaws.com$ sudo apt-get install git