Svn et http distant besoin d,aide svp :(

Résolu/Fermé
cyclide - 27 oct. 2011 à 15:24
mamiemando Messages postés 33093 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 4 mai 2024 - 1 nov. 2011 à 22:20
Bonour,

Ca fait au 3 semaine que je cherche a résourde mon probleme :(. Bon Voila j'ai un serveur centos 5.1 de subvertion et un serveur centos 5.1 http tout les deux distant. Mon serveur svn a l'adresse 10.10.10.2 et mon serveur http 10.10.10.3 (Adresse facultative). Je veut créé un update automatique quand mes devellopeur commit. Donc maintenant quand je fait un commit sur un fichier avec turtoise tout se passe bien il me dit qu'il l,a ajouter et qu'il la sender seulement que je ne voit pas le fichier sur mon serveur http. J'ai tester aussi si mon fichier hooks s'éxecutait alors j'ai créé une erreur dans le fichier et turtoise m'affichait l'érreur.

Bon voici mon post-commit:
#!/bin/bash

/usr/bin/svn update http://10.10.10.3 --username test --password test (user et mot de passe de mon checkout http)

j'ai fait un chmod +x post-commit

quand je l'éxecute ./post-commit
skipped http://10.10.10.3

Merci a tous !!!

5 réponses

mamiemando Messages postés 33093 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 4 mai 2024 7 752
Modifié par mamiemando le 28/10/2011 à 10:21
D'après moi ton hook n'a pas de sens (enfin il ne fait pas ce que tu veux). Un "svn up" est une opération cliente d'un point de vue svn : elle va rappatrier ce qui est sur le dépôt à un endroit donné.

Ici tu exécutes cette commande sur le serveur svn. Ce n'est donc en aucun cas 10.10.10.3 qui récupère quoi que ce soit (en fait c'est 10.10.10.2 qui récupère des informations). De plus vus les paramètres, ton serveur svn tente de rapatrier des données svn en supposant que 10.10.10.3 dispose d'un serveur svn, ce qui n'est a priori pas le cas.

Alors tu vas me dire, très bien mais comment lancer au niveau du serveur 10.10.10.2 un "svn up" qui devrait être lancé depuis la machine 10.10.10.3, puisque le hook est forcément au niveau du serveur svn.

Je vois deux solutions (avec une préférence pour la 1ère)

(1) le hook (sur 10.10.10.2) déclenche une commande du genre :

ssh root@10.10.10.3 "/root/update.sh"


... où /root/update.sh est un script shell positionné sur 10.10.10.3 qui déclenche un svn up :

#!/bin/sh
cd /var/www/....
svn up


Comme ssh requiert une authentification (mot de passe), il faudra pour automatiser tout ça mettre en place une clé ssh qui permet à 10.10.10.2 de se connecter sur 10.10.10.3 sans mot de passe :
http://prendreuncafe.com/blog/post/2005/08/29/262-installer-sa-cle-ssh-sur-un-serveur-distant

(2) le dépôt svn peut être positionné sur une partage nfs importé par 10.10.10.3 (plus besoin de hook du coup, tout ce qui est commit est en ligne)

Bonne chance
0
Sur quel serveur que je mets la clé et je fait tout ce setup ?
0
mamiemando Messages postés 33093 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 4 mai 2024 7 752
29 oct. 2011 à 12:23
Le couple clé publique clé privé est à générer sur la machine svn et avec le profil qui sera utilisé pour lancer le hook svn. Si par exemple ton serveur svn est un processus lancé par toto, c'est toto qui doit créer une clé ssh.

Ensuite il faut copier (ssh-copy-id) la clé publique sur la machine qui héberge le serveur apache dans le profil avec lequel tu te connectes en ssh dans ton hook svn. Si par exemple ton hook svn se connecte en ssh avec l'utilisateur tata (qui doit avoir les droits pour corriger l'arborescence apache), alors la clé publique est installé dans ~tata/.ssh.

Je t'invite à prendre le temps de lire le tutoriel et faire de trois tests juste avec ssh pour comprendre comment ça fonctionne.

Bonne chance
0
Salut en fait tout fonctionne pour la clé publique seulement que une chose je suis incapable d'entrer dans un dossier quelqconque

ssh root@10.10.10.3 "/root/update.sh"

ca me repond is a directory la seul maniere que je croit qui functionne mes pas sur c'est "cd /root/update.sh" mes quand je ./post-commit pour verifier je ne le voit pas se connecter.

test#./post-commit
test#

mes si je m'est seulement ssh root@10.10.10.3
./post-commit je me voit entrer sur le serveur.

Es-ce normale ? je ne sais pas car je ne connait pas asser ca :(
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
mamiemando Messages postés 33093 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 4 mai 2024 7 752
31 oct. 2011 à 23:46
Il faut que /root/update.sh soit un script shell écrit par tes soins avec des droits en exécution. Tu peux tester à la main qu'il marche en lançant depuis le serveur svn

ssh root@10.10.10.3 "/root/update.sh" 


N'hésite pas à rajouter des "echo" dans /root/update.sh pour voir s'il est bien appelé.

Exemple : sur le serveur apache

nano /root/update.sh


Dedans :

#!/bin/sh
echo "coucou"
cd /var/www/....
svn up


On sauve on quitte (ctrl x), puis :

chmod a+x /root/update.sh


Il ne reste plus qu'à tester. Sur le serveur svn :

ssh root@10.10.10.3 "/root/update.sh" 


Bonne chance
0
phil de ferre
31 oct. 2011 à 23:51
bonsoir :)

mamiemando,je suis un fan de tes interventions sur ce forum :) c'est du bonheur :)
0
mamiemando Messages postés 33093 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 4 mai 2024 7 752
1 nov. 2011 à 11:10
Hé bien merci pour le compliment, ça fait toujours plaisir... et ça donne envie de continuer ;-)
0
Merci bcp,

Vraiment merci de ton aide gra ce a toi j'ai résolue mon problème car je ne connaisait rien a svn donc s.était pas très évident. Je doit dire que j'ai poster aussi sur d'autre forum mes se n'était que du flafla façon de parler. Alors je doit dire que je suis tomber sur le dieu de la subversion lol et puis lâche pas sincèrement et j'espère un jour te routourner l'appareil qui sais et plus que tu est très clair dans t'est explication :) Bref merci mille fois !!!!!!!!
0
mamiemando Messages postés 33093 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 4 mai 2024 7 752
1 nov. 2011 à 22:20
Ahaha et bien parfait, comme je disais dans mon précédent message ça fait toujours plaisir ce genre de compliment et de remerciements, car tout le monde ne prend pas forcément le temps de le faire ;-)

Bonne soirée !
0