Déploiement avec Capistrano

Salut à tous !

J’ai une petite question concernant capistrano, puisque j’essaie de m’y
mettre (pas sans mal !) :wink:
J’ai besoin de déployer une application sur mon serveur, en me loggant
avec mon compte qui n’a aucun privilèges mais qui via un sudo permet de
faire des tâches d’admin. D’après mes essais et ce que j’en vois,
capistrano essaie bêtement de créer ses répertoires sur le serveur avec
l’utilisateur SSH qui lui est fourni sans utiliser sudo ni rien. Donc je
voulais savoir si c’était possible de modifier ce comportement ?
Et d’ailleurs si vous avez de la (bonne) doc sur capistrano je suis
preneur (vu que le site officiel sert pas à grand chose).

Merci d’avance :slight_smile:

Bon je me répond juste pour signaler qu’après quelques recherches, j’ai
réussi à faire ce que je voulais grâce aux différents hooks dispo de
capistrano.

Loïc Guitaut a écrit :

C’est gentil mais est-ce que tu pourrais partager les résultats de tes
recherches sur la ML ?

Merci beaucoup,

Pierre

Pierre V. a écrit :

C’est gentil mais est-ce que tu pourrais partager les résultats de tes
recherches sur la ML ?

Comme personne répondait, je pensais que personne n’était intéressé :wink:
Donc la technique que j’ai trouvé pour le moment et qui me satisfait,
tout du moins pour le moment consiste à modifier les droits du
répertoire de destination du déploiement pour les droits de
l’utilisateur courant (on utilisera sudo pour la manip). Et une fois que
le déploiement est terminé, hop on remet les droits en l’état (dans mon
cas les droits de www-data).

J’ai remarqué que la valeur de :runner était bien utilisée dans un
deploy:setup qui se fait avec un sudo sans rien toucher. Par contre le
problème vient du déploiement en lui même, puisque capistrano essaie
d’utiliser l’archive directement avec l’utilisateur SSH que l’on
spécifie mais dans le répertoire de destination du déploiement (ça
mériterai un patch :)).

Mais heureusement on peut spécifier des tâches à effectuer
automatiquement avant ou après certaines tâches définies grâce à before
et after.
Par exemple dans le deploy.rb : before ‘deploy:cold’, :my_task
cela ira exécuter la tâche :my_task juste avant de lancer le
deploy:cold. Il y a un helper sudo dans capistrano qui permet de lancer
une commande avec sudo justement et qui fonctionne bien. Donc j’ai mis
quelques before et after après deploy et deploy:cold pour faire en sorte
grâce à sudo de changer les permissions du répertoire de destination
(qu’on peut récupérer par un fetch(:deploy_to, ‘app’)).

Hum voilà en gros :slight_smile: Je sais pas si c’est très clair mais si t’as
d’autres questions hésite pas !

Jean-François Trân a écrit :

Le 20 mai 2008 13:25, Loïc Guitaut a écrit :

Hum voilà en gros :slight_smile: Je sais pas si c’est très clair mais si t’as
d’autres questions hésite pas !

Ouais, pourquoi t’es pas venu samedi mon petit saligaud ?

Rho l’autre comment il m’agresse :wink: Et c’était bien alors la journée de
samedi ? :slight_smile:

Le 20 mai 2008 13:25, Loïc Guitaut a écrit :

Hum voilà en gros :slight_smile: Je sais pas si c’est très clair mais si t’as
d’autres questions hésite pas !

Ouais, pourquoi t’es pas venu samedi mon petit saligaud ?

– Jean-François (je précise que je connais Loïc).


changement de signature en cours

Jean-François Trân a écrit :

Mais réponds d’abord à ma question initiale, que je ne
sois pas obligé de te donner des coups de câble réseau !
(c’est comme des coups de fouets, mais en plus geek)

Bah j’avais autre chose de prévu déjà (je suis qu’un semi-geek moi :wink: )

Le 20 mai 2008 17:24, Loïc Guitaut a écrit :

Ouais, pourquoi t’es pas venu samedi mon petit saligaud ?

Rho l’autre comment il m’agresse :wink:

Ne fais pas l’innocent, tu sais bien que je te parle toujours
comme ça :stuck_out_tongue:

Et c’était bien alors la journée de samedi ? :slight_smile:

Bah, c’est pas à moi de répondre mais aux participants.

Mais réponds d’abord à ma question initiale, que je ne
sois pas obligé de te donner des coups de câble réseau !
(c’est comme des coups de fouets, mais en plus geek)

-- Jean-François.


changement de signature en cours

que je ne sois pas obligé de te donner des coups de câble réseau !

Tiens ? D’mon temps on faisait ça avec des chaînes de vélo.

Comme quoi le Web 2.0 ça change tout :wink:


IciMarché fédère l’e-commerce de proximité
http://icimarche.fr

Comme quoi le Web 2.0 ça change tout :wink:

Oui, Jean-François semble très orienté câbles réseaux d’après ce que
j’ai pu voir au MashPit :smiley:

Loïc > Y’a pas de doc sur capistrano mais très peu en français. Pour
ton problème de base tu peux lancer des commandes sur les machines
depuis capistrano avec sudo au lieu de run (ca marche bien depuis la
dernière version d’ailleurs).

Après pour les soucis d’admin, ton root ne devrait pas être le user
qui permet de gérer tes fichiers et ton serveur :slight_smile:

Et pour les ressources, je conseille le full incroyablement et
totalement magnifique “Deploying rails applications” qui est (pour les
anglophiles, bien sur) vraiment un super condensé pour capter les
différents mécanismes et faire un joli set up de prod qui fonctionne.

Ouala !

jb.feldis a écrit :

Loïc > Y’a pas de doc sur capistrano mais très peu en français. Pour
ton problème de base tu peux lancer des commandes sur les machines
depuis capistrano avec sudo au lieu de run (ca marche bien depuis la
dernière version d’ailleurs).

Oui j’ai vu ça, vu que j’ai réussi à m’en dépatouiller avec :wink:

Et pour les ressources, je conseille le full incroyablement et
totalement magnifique “Deploying rails applications” qui est (pour les
anglophiles, bien sur) vraiment un super condensé pour capter les
différents mécanismes et faire un joli set up de prod qui fonctionne.

Effectivement ça peut être intéressant comme bouquin. Merci !