Capistrano et certificat SSL

Bonjour !

J’utilise capistrano pour déployer mes applications.
Il se pose cependant un problème lorsque je veux déployer via une
connexion https :
Capistrano me demande évidement si je veux accepter le certificat, je
réponds oui, de façon permanente et il semble ce mettre en pause…plus
rien ne se passe.
La seule solution que j’ai trouvé pour le moment est de déployer la
première fois directement depuis le serveur en faisant un svn checkout
et d’accepter de manière permanente le certificat. Après cela,
capistrano deploie correctement (normal vu que le certificat est Ã
présent autorisé sur le serveur).

voilà ce que me donne cap deploy :


** [out :: prod] ®eject, accept (t)emporarily or accept §ermanently?
p
(ctrl+c car rien ne se passe puis :slight_smile:
/usr/local/lib/ruby/gems/1.8/gems/capistrano-1.4.0/lib/capistrano/command.rb:41:in
`sleep’: Interrupt

from
/usr/local/lib/ruby/gems/1.8/gems/capistrano-1.4.0/lib/capistrano/command.rb:41:in
`process!’

from
/usr/local/lib/ruby/gems/1.8/gems/capistrano-1.4.0/lib/capistrano/command.rb:28:in
`loop’

from
/usr/local/lib/ruby/gems/1.8/gems/capistrano-1.4.0/lib/capistrano/command.rb:28:in
`process!’

from
/usr/local/lib/ruby/gems/1.8/gems/capistrano-1.4.0/lib/capistrano/actor.rb:210:in
`run’

from
/usr/local/lib/ruby/gems/1.8/gems/capistrano-1.4.0/lib/capistrano/actor.rb:554:in
`execute_on_servers’

from
/usr/local/lib/ruby/gems/1.8/gems/capistrano-1.4.0/lib/capistrano/actor.rb:207:in
run' from ./config/deploy.rb:22:inload’

from
/usr/local/lib/ruby/gems/1.8/gems/capistrano-1.4.0/lib/capistrano/actor.rb:159:in
`instance_eval’
… 6 levels…

from
/usr/local/lib/ruby/gems/1.8/gems/capistrano-1.4.0/lib/capistrano/cli.rb:12:in
`execute!’

from /usr/local/lib/ruby/gems/1.8/gems/capistrano-1.4.0/bin/cap:11
from /usr/local/bin/cap:16:in `load’
from /usr/local/bin/cap:16

Il semblerait que capistrano ne soit pas capable de transmettre l’info
§ et se mette en sleep (pas en slip hein ?)

Une idée ? Une solution plus propre que la mienne actuellement ?

Jérémy.

J’ai pas de réponse, mais il m’a semblé voir passer cette question
souvent
sur la ML Capistrano.

Bonjour Jérémy

tu peux essayer ça: logge toi en SSH sur le serveur distant et exécute
une
première commande svn qui cible ton repository svn en https, ex:

svn list --username mylogin https://myserver.com/svn/myrepo

lorsqu’il te le demande, accepte le certificat de façon permanente, puis
retente ta chance via capistrano.

a+

Thibaut Barrère

Si tu acceptes de façon permanente, après tu es en full auto
normalement.

++

Merci les gas !

en fait, c’est ce que je fais et après effectivement, vu que le
certificat est accepté, ça passe avec capistrano. Cependant, c’est pas
top pour du déploiement full auto…

Je vais aller faire un tour sur la ml capistrano voir.

Bonne soirée.

Le mardi 17 avril 2007 à 19:32 +0200, Thibaut Barrère a écrit :

Le mercredi 18 avril 2007 à 09:11 +0200, Thibaut Barrère a écrit :

Si tu acceptes de façon permanente, après tu es en full auto
normalement.

++

Oui, le seul désagrément est de ne pas pouvoir le faire directement lors
du cap deploy et qu’il faille le faire sur le serveur de prod la 1ere
fois (bon ok je chipote mais quand même, j’aimerais bien comprendre ce
qui ne va pas avec capistrano : pourquoi il ne renvoi pas la réponse au
serveur et se met en ‘sleep’).

Le 18 avr. 07 à 09:44, Jérémy Dierx a écrit :

Le mercredi 18 avril 2007 à 09:11 +0200, Thibaut Barrère a écrit :

Si tu acceptes de façon permanente, après tu es en full auto
normalement.

++
Oui, le seul désagrément est de ne pas pouvoir le faire directement
lors du cap deploy et qu’il faille le faire sur le serveur de prod
la 1ere fois (bon ok je chipote mais quand même, j’aimerais bien
comprendre ce qui ne va pas avec capistrano : pourquoi il ne renvoi
pas la réponse au serveur et se met en ‘sleep’).

Regarde la facon dont capistrano check le password et te renvoie la
main pour que tu le saisisses c’est super rudimentaire.
En gros pour faire ce genre de chose dans la même forme que
l’implémentation actuelle il faudrait que capistrano fasse une regexp
sur le message, ce qui exploserait de toute facon pour les versions
localisées et donc ne serait pas portable. Je le fais perso dans une
ou deux taches pour faire des dump mais ca n’est valable que sur une
infrastructure bien précise.

J’imagine que c’est un peu dans l’optique rails, plutôt faire du
simple qui fonctionne à 95% qu’une usine à gaz à 100%. Le fond du
problème me semble au niveau de la communication avec la console ssh,
j’ai l’impression que tel que c’est fait il n’y a pas de moyen de
savoir quand la console ssh attend un input. Ce qui pose un problème
pour svn mais également pour tout le reste, capistrano ne me semble
pas concu à la base pour faire des intéractions mais pour lancer des
commandes automatiques.

Pour voir s’il existe un paliatif il faudrait creuser le Net::SSH
voir si c’est une absence de fonctionnalité de sa part ou juste que
ce n’est pas utilisé pour capistrano.

Renaud_______________________________________________
Railsfrance mailing list
[email protected]
http://lists.rubyonrails.fr/mailman/listinfo/railsfrance