Mes clés ssh sont certainement configurées correctement, car le mot de passe ne m'est jamais demandé lorsque j'utilise ssh. Mais capistrano demande toujours un mot de passe lors du déploiement avec cap deploy
. Il ne demande pas le mot de passe lorsque je configure avec cap deploy:setup
pourtant, étrangement. Le cycle de déploiement serait tellement plus fluide sans demande de mot de passe.
Spécificités : Je déploie une application Sinatra sur un compte partagé Dreamhost (qui utilise Passenger). J'avais suivi un tutoriel pour le faire il y a longtemps, qui fonctionnait parfaitement à l'époque. Quelque chose s'est cassé depuis. J'utilise capistrano (2.5.9) et git version 1.6.1.1. Voici mon Capfile :
load 'deploy' if respond_to?(:namespace) # cap2 differentiator
set :user, 'ehsanul'
set :domain, 'jellly.com'
default_run_options[:pty] = true
# the rest should be good
set :repository, "ehsanul@jellly.com:git/jellly.git"
set :deploy_to, "/home/ehsanul/jellly.com"
set :deploy_via, :remote_cache
set :scm, 'git'
set :branch, 'deploy'
set :git_shallow_clone, 1
set :scm_verbose, true
set :use_sudo, false
server domain, :app, :web
namespace :deploy do
task :migrate do
run "cd #{current_path}; /usr/bin/rake migrate environment=production"
end
task :restart do
run "touch #{current_path}/tmp/restart.txt"
end
end
after "deploy", "deploy:migrate"
Et voici le résultat de ce qui se passe quand je cap deploy
jusqu'à l'invite du mot de passe :
$ cap deploy
* executing `deploy'
* executing `deploy:update'
** transaction: start
* executing `deploy:update_code'
updating the cached checkout on all servers
executing locally: "git ls-remote ehsanul@jellly.com:git/jellly.git deploy"
/usr/local/bin/git
* executing "if [ -d /home/ehsanul/jellly.com/shared/cached-copy ]; then cd /home/ehsanul/jellly.com/shared/cached-copy && git fetch origin && git reset --hard ea744c77b0b939d5355ba2dc50ef1ec85f918d66 && git clean -d -x -f; else git clone --depth 1 ehsanul@jellly.com:git/jellly.git /home/ehsanul/jellly.com/shared/cached-copy && cd /home/ehsanul/jellly.com/shared/cached-copy && git checkout -b deploy ea744c77b0b939d5355ba2dc50ef1ec85f918d66; fi"
servers: ["jellly.com"]
[jellly.com] executing command
** [jellly.com :: out] ehsanul@jellly.com's password:
Password:
** [jellly.com :: out]
** [jellly.com :: out] remote: Counting objects: 7, done.
remote: Compressing objects: 100% (4/4), done.
Qu'est-ce qui pourrait être cassé ?