IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Subversion Discussion :

Le post-commit de SVN


Sujet :

Subversion

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2007
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 73
    Par défaut Le post-commit de SVN
    Bonjour,

    j'ai un repositry SVN qui fonctionne avec apache (et le plugin dav_svn) sous linux (ubuntu). Il commit, update et checkout nikel.

    j'aimerais synchroniser le dossier www de apache avec les données de mon repositry et ce à chaque commit.
    J'ai donc pris un petit script qui contient les ligne suivantes:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    #!/bin/sh
    sudo /usr/bin/svn update /var/www
    placé ensuite dans le dossier hooks de mon repositry (la où un post-commit.tmpl est déjà présent) et donné des droit chmod +x dessus. (j'ai essayé aussi avec 777).

    et le problème est que le post-commit ne se lance jamais !

    voici les test que j'ai fait:
    • j'ai donc lancé le fichier à la main et il fonctionne correctement, il peuple bien le www.
    • faire autre chose au script, moi je lui ai fait creer un fichier vide dans le root puis essayé dans mon home mais rien. (par contre appelé manuellement il le fabrique correctement).
    • m'ajouter au groupe www-data mais la encore rien. (puisque ma session porte le même nom que le login avec lequel je commit).
    • changer l'apartenance du fichier avec chown www-data post-commit. ne marche pas non plus avec chown www-data:www-data post-commit. (le fichier est d'origine de type root:root).
    • verifier le error.log de apache mais rien sur svn. verifier acces.log, il y a le merge et le commit le update interne du repository. le update fait par le post commit n'est pas présent.

    à chacun de mes test j'ai bien pris le soin de redemmarer le serveur apache.

    Voila, d'avance merci pour toute aide fourni, et pour avoir porté attention à mon problème.

  2. #2
    Membre averti
    Inscrit en
    Avril 2006
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 19
    Par défaut
    Bonjour,

    As-tu trouvé une solution à ton problème ?

    J'ai le même souci que toi, je pense que ça vient du sudo. Moi ça marche seulement si j'ai lancé la commande sudo à la main au préalable sur le serveur.

    Du coup je ne sais pas comment dire au serveur de "sudo-ifier" mon user en permanence....

    c'est pas très clair pour moi tout ça...

    charly

  3. #3
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Par défaut
    Tu ne peux pas faire de sudo dans un tel fichier. De un, il faut que l'utilisateur Apache soit sudoer (à mon avis un gros trou de sécurité) et de deux, /var/www/ appartient normalement déjà à cet utilisateur, donc pas besoin de faire de sudo (mais ça reste un trou de sécurité)

  4. #4
    Membre averti
    Inscrit en
    Avril 2006
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 19
    Par défaut
    Hello,

    Bah le problème c'est que même si /var/ww appartient à mon user, ce dernier n'a aucun droit.

    Je ne peux pas faire de mkdir en dehors de /home/user, je ne peux pas lancer de script sh, je ne peux pas faire de cp, etc..

    J'ai bien tenté de modifier mon fstab pour ajouter user,exec, mais lorsque je fais cette modif, la debian ne redémarre plus.

    Pour rappel ce n'est pas un utilisateur apache qui fait le commit, car je passe en svn+ssh via tortoise.

    La seule solution que j'ai vu en attendant c'est donc le sudo, et dans mon sudoers, j'ajoute mon user sur l'action svn update avec un nopasswd.

    1/ La sécurité est-elle toujours menacée ?
    2/ Quel autre moyen + "propre" dois-je mettre en place ?

    Charly

  5. #5
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Par défaut
    Ben si, c'est bien Apache si tu utilises un serveur Apache...
    Et /var/www/ appartient à l'user Apache (par exemple www-data), donc il n'y a normalement pas de problème de droit d'accès.

  6. #6
    Membre averti
    Inscrit en
    Avril 2006
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 19
    Par défaut
    voui, dans la vie normale ;=) mais là j'ai beau faire ce que je veux, mon user ne semble pas avoir les bonnes permissions, et je sais pas trop comment contourner ça..

    Sinon svn ne fonctionne pas avec apache, je n'ai pas mis le dav_svn, ça c'est Lucyberad sur son premier post, moi je passe en svn+ssh.

  7. #7
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Par défaut
    Mais tu as quoi comme serveur SVN qui tourne, parce que dire que tu passes avec Tortoise, ça ne dit rien du tout sur le serveur.

  8. #8
    Membre averti
    Inscrit en
    Avril 2006
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 19
    Par défaut
    bah c'est un accès SSH, donc pas besoin de svnserve

    (rien à voir, mais très sympa le design du blog de ta femme ;=)

  9. #9
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Par défaut
    Il y a un serveur derrière sur la bécane, que ce soit svn+ssh ou http ou autre. C'est quoi comme serveur et il tourne sur quel utilisateur ?

    edit : apparemment, il s'agirait vraisemblablement d'un svnserve.

    (merci)

  10. #10
    Membre averti
    Inscrit en
    Avril 2006
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 19
    Par défaut
    Au temps pour moi, c'est bien svnserve.

    Edit: et il tourne sous root puisque je l'ai installé sous root.
    edit2: m'enfin ça ne change pas mon problème, le svnserve marche bien, puisque j'arrive à faire des commit, c'est l'exécution du script post-commit qui foire après. (en root ça passe bien, c'est pour ça que j'ai pensé au sudo)

  11. #11
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Par défaut
    Il ne tourne pas forcément sous root, ça dépend, vérifie l'utilisateur

  12. #12
    Membre averti
    Inscrit en
    Avril 2006
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 19
    Par défaut
    c'est bien root.

  13. #13
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Par défaut
    Dans ce cas, la mise à jour avec un svn update devrait fonctionner. Mais le problème que tu vas avoir, c'est que les fichiers mis à jour n'auront pas forcément le bon utilisateur et groupe, et que dans tous les cas, tu vas avoir des dossiers .svn partout, donc un gros problème potentiel. Fait un export à la place, ça sera bien plus prudent.

  14. #14
    Membre averti
    Inscrit en
    Avril 2006
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 19
    Par défaut
    L'export prend plus de temps dans la mesure ou il copie l'ensemble des fichiers. L'update met à jour que ce que j'ai besoin.
    Et pour les .svn, j'ai mis un filtre sur apache.

    Mais le fond du problème reste là, j'ai des users qui n'ont pas les permissions d'exécuter des scripts, et je sais pas comment autoriser ça. La modification du fstab en ajoutant user,exec fait planté le reboot.

  15. #15
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Par défaut
    Cest normal puisque c'est le root qui fait la mise à jour donc les fichiers appartiennent à root et non à l'utilisateur Apache.

  16. #16
    Membre averti
    Inscrit en
    Avril 2006
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 19
    Par défaut
    bon c'est pas simple tout ça, surtout si j'ai plusieurs utilisateurs qui font cet update...

  17. #17
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Par défaut
    Tu n'as qu'un seul utilisateur qui doit être propriétaire des fichiers, c'est celui qui gère le serveur web, c'est tout. Le problème que tu as, c'est que ton serveur svnserve n'est pas lancé avec le même utilisateur. Une solution simple serait que ce serveur soit lancé par www-data (par exemple) et que le repository lui appartienne et dans ce cas, ton installation sera bien plus propre (svnserve ne devrait pas tourner en root).

  18. #18
    Membre averti
    Inscrit en
    Avril 2006
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 19
    Par défaut
    bon j'vais tenter d'explorer cette piste.

    Un grand merci pour ton temps en tout cas ;=)

  19. #19
    Invité de passage
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 1
    Par défaut post-commit.tmpl
    Salut a tous ,

    essai de renommer ton fichier post-commit.tmpl par post-commit tout simplement .
    Et met lui les droits en exécution pour le propriétaire.

    Parce que si le script ne génere aucune erreur je pense que c'est parce qu'il n'est pas lancé.

Discussions similaires

  1. [Svn]Post-commit et update > working copy locked
    Par Issiel dans le forum Applications et environnements graphiques
    Réponses: 0
    Dernier message: 14/03/2012, 15h19
  2. svn post-commit update
    Par capitainewilde dans le forum Administration système
    Réponses: 4
    Dernier message: 23/08/2011, 11h46
  3. [Administration] post-commit et svn update
    Par nek_kro_kvlt dans le forum Subversion
    Réponses: 6
    Dernier message: 18/12/2008, 11h09
  4. [Hook] post-commit qui ne s'exécute pas
    Par Gregco dans le forum Subversion
    Réponses: 9
    Dernier message: 06/08/2008, 10h51
  5. [Hook] post commit ne se lance pas
    Par kheled dans le forum Subversion
    Réponses: 3
    Dernier message: 04/08/2008, 09h17

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo