Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1422 connectés 

  FORUM HardWare.fr
  Programmation
  Ruby/Rails

  Déploiment Capistrano bloqué

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Déploiment Capistrano bloqué

n°1681120
LeRiton
Posté le 03-02-2008 à 18:47:55  profilanswer
 

Salut à tous,
 
J'utilise Capistrano avec mes projets rails, et forcément, j'y prend tellement gout que je migre progrossivement mes projets autres. Jusqu'à ce projet PHP versionné sous Mercurial.
 
En gros, j'ai voulu commencer simple, avec le fichier de deploiment suivant :
 

Code :
  1. set :application, "mon-appli"
  2. set :repository, "http://hg.mon.domaine.net/#{application}"
  3. set :scm, "mercurial"
  4. set :scm_user, "moi_sur mercurial"
  5. set :scm_password, "mon_pass"
  6. # essayé aussi avec le prompt, il n'apparait même pas
  7. #set :scm_password, Proc.new { Capistrano::CLI.password_prompt('Password : ') }
  8. set :user, "moi en ssh"
  9. ssh_options[:keys] = %w(/home/moi/.ssh/ma clé publique)
  10. set :deploy_to, "/var/www/dev/#{application}"
  11. role :web, "localhost"


 
Et là, ça boucle. En gros, il reste bloqué à la dernière ligne de cette trace :
 

Code :
  1. * executing `deploy'
  2.   * executing `deploy:update'
  3. ** transaction: start
  4.   * executing `deploy:update_code'
  5.   * executing "hg clone --noupdate http://hg.mon.domaine.net/mon-appli /var/www/dev/mon-appli/releases/20080203174151 && hg update --repository /var/www/dev/mon-appli/releases/20080203174151 --clean 263aeeff38a5 && (echo 263aeeff38a5 > /var/www/dev/mon-appli/releases/20080203174151/REVISION)"
  6.     servers: ["localhost"]
  7.     [localhost] executing command


 
Les différentes commandes Mercurial qui apparraissent précédement passent toutes sans encombre dans un shell. Je suis en Ruby 1.8.5, Capistrano 2.1.0. Et le truc, c'est que je ne vois même pas où trouver des logs pour débugger tout ça.
 
Merci d'avance !

mood
Publicité
Posté le 03-02-2008 à 18:47:55  profilanswer
 

n°1681920
LeRiton
Posté le 05-02-2008 à 12:20:13  profilanswer
 

C't'a dire que je peux donner plus de détails si vous voulez [:dawa]

n°1682337
LeRiton
Posté le 05-02-2008 à 21:20:49  profilanswer
 

Me laissez pas jovaliser /o\
 
Nous en étions restés sur le blocage à la ligne d'exécution suivante :
 

Code :
  1. #   * executing "hg clone --noupdate http://hg.mon.domaine.net/mon-appli /var/www/dev/mon-appli/releases/20080203174151 && hg update --repository /var/www/dev/mon-appli/releases/20080203174151 --clean 263aeeff38a5 && (echo 263aeeff38a5 > /var/www/dev/mon-appli/releases/20080203174151/REVISION)"
  2. #     servers: ["localhost"]
  3. #     [localhost] executing command


 
Au bout d'un moment, j'abandonne donc en tuant la commande, Capistrano fait donc un rollback avec la trace suivante :
 

Code :
  1. command finished
  2. /var/lib/gems/1.8/gems/capistrano-2.1.0/lib/capistrano/command.rb:49:in `sleep': Interrupt
  3.         from /var/lib/gems/1.8/gems/capistrano-2.1.0/lib/capistrano/command.rb:49:in `process!'
  4.         from /var/lib/gems/1.8/gems/capistrano-2.1.0/lib/capistrano/command.rb:36:in `loop'
  5.         from /var/lib/gems/1.8/gems/capistrano-2.1.0/lib/capistrano/command.rb:36:in `process!'
  6.         from /var/lib/gems/1.8/gems/capistrano-2.1.0/lib/capistrano/command.rb:11:in `process'
  7.         from /var/lib/gems/1.8/gems/capistrano-2.1.0/lib/capistrano/configuration/actions/invocation.rb:53:in `run'
  8.         from /var/lib/gems/1.8/gems/capistrano-2.1.0/lib/capistrano/configuration/connections.rb:135:in `execute_on_servers'
  9.         from /var/lib/gems/1.8/gems/capistrano-2.1.0/lib/capistrano/configuration/actions/invocation.rb:51:in `run'
  10.         from /var/lib/gems/1.8/gems/capistrano-2.1.0/lib/capistrano/recipes/deploy/strategy/base.rb:43:in `send'
  11.          ... 31 levels...
  12.         from /var/lib/gems/1.8/gems/capistrano-2.1.0/lib/capistrano/cli/execute.rb:14:in `execute'
  13.         from /var/lib/gems/1.8/gems/capistrano-2.1.0/bin/cap:4
  14.         from /var/lib/gems/1.8/bin/cap:18:in `load'
  15.         from /var/lib/gems/1.8/bin/cap:18


 
Et si je regarde donc dans le fichier command.rb :
 

Code :
  1. # Processes the command in parallel on all specified hosts. If the command
  2.    # fails (non-zero return code) on any of the hosts, this will raise a
  3.    # Capistrano::CommandError.
  4.    def process!
  5.      since = Time.now
  6.      loop do
  7.        active = 0
  8.        @channels.each do |ch|
  9.          next if ch[:closed]
  10.          active += 1
  11.          ch.connection.process(true)
  12.        end
  13.  
  14.        break if active == 0
  15.        if Time.now - since >= 1
  16.          since = Time.now
  17.          @channels.each { |ch| ch.connection.ping! }
  18.        end
  19.        sleep 0.01 # a brief respite, to keep the CPU from going crazy
  20.      end
  21.  
  22.      logger.trace "command finished" if logger
  23.  
  24.      if (failed = @channels.select { |ch| ch[:status] != 0 }).any?
  25.        hosts = failed.map { |ch| ch[:server] }
  26.        error = CommandError.new("command #{command.inspect} failed on #{hosts.join(',')}" )
  27.        error.hosts = hosts
  28.        raise error
  29.      end
  30.  
  31.      self
  32.    end


 
La ligne concernée par la trace précédente est celle du sleep 0.01 (ligne 19 ici). Je vois pas ce qui cloche, et ça commence à me les piler.

n°1703703
totoffe38
Posté le 17-03-2008 à 21:35:14  profilanswer
 

Salut,
 
Moi c'est à l'étape cap deploy:cold que je coince, apparemment y'a un souci avec mercurial, il me sort: "[err] abort: unknown revision '79d0e246ecb7'!"
 
C'est quoi le process complet avec mercurial et capistrano? j'ai l'impression que l'initialisation est foireuse chez moi. Quel est l'ordre des choses à réaliser?
 
 
En recommençant tout à zéro, j'ai maintenant "[err] abort: branch default not found"  [:sniperlk]
 
 
EDIT: c'est bon, apparemment il faut faire un push initial à la main, ensuite cap deploy:cold fonctionne, bizarre bizarre  [:thalis]
 
EDIT2: c'est foireux, je dois faire un "hg push http://..." avant chaque "cap deploy:cold", y'a un problème  :(


Message édité par totoffe38 le 17-03-2008 à 22:04:18
n°1707271
LeRiton
Posté le 25-03-2008 à 13:20:51  profilanswer
 

J'ai un peu lâché le truc de mon côté. J'ai pas l'impression que le process soit bien figé pour Mercurial.
Si tu as des pistes, je suis preneur, je peux me fendre de quelques tests aussi.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Ruby/Rails

  Déploiment Capistrano bloqué

 

Sujets relatifs
loadMovieNum ou loadMovie bloque le bon fonctionnement du swf appeléVBA Excel _ processus bloque attachement PJ
[Résolu] Bloqué à 99 données lues sur base mysqlJeu Anagramme qui bloque - RESOLU
Bloqué sur une condition logique VB......[Résolu]Les pointeurs: je bloque
ActiveX bloque mes Rollover![AS3] getChildAt at addChild [RESOLU]
[MSDOS] PROGRAMME INSPIRE DE LOST SUR LEQUEL JE BLOQUE[Java] fichier de log non bloqué
Plus de sujets relatifs à : Déploiment Capistrano bloqué


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR