Pix, Unix, Agility & Co

Aller au contenu | Aller au menu | Aller à la recherche

jeudi 23 février 2012

Sauvegarde et restauration d'un dépot de code sous Subversion

En supposant que je sauvegarde ainsi le contenu de mon dépot de cote :

/usr/bin/svnadmin dump /var/svn/repos > /home/sauvegarde/sauv_svn/sauv_svn_dev1.bak

La commande pour restaurer cette sauvegarde dans un nouveau dépot sera :

/usr/bin/svnadmin load /var/svn/repos < /home/sauvegarde/sauv_svn/sauv_svn_dev1.bak

C'est presque trop simple

mercredi 15 décembre 2010

Subversion et authentification LDAP

Installation sur GNU-Linux Debian

Ajouter les paquets : subversion, apache2 (si il n'est pas déjà présent) et libapache2-svn

Création d'un premier Repository :

   dev1:/etc/ssh# cd /var
   dev1:/var# mkdir svn
   dev1:/var# cd svn
   dev1:/var/svn#
   dev1:/var/svn# svnadmin create /var/svn/repos
   dev1:/var/svn# ls -rtl
   total 4
   drwxr-xr-x 6 root root 4096 mai 29 11:34 repos
   dev1:/var/svn#

On crée un utilisateur dédié à SVN :

   dev1:/var/svn# adduser –shell /bin/null svn

puis on lui attribue la propriété des dépots :

   dev1:/var/svn# chown -R svn:svn /var/svn

On ajoute les utilisateurs Unix pour qu'ils puissent utiliser svn au groupe svn du système par exemple :

   adduser <user> svn

On configure le VirtualHost Apache pour que le mod_dav de svn soit accessible :

   dev1:/etc/apache2/sites-available# cat 001-svn
   <VirtualHost 192.168.1.7>
   ServerName svn.dev1.mondomaine.fr
   ServerAdmin admin@mondomaine.fr
   <Location /repos>
   DAV svn
   SVNPath /var/svn/repos
   </Location>
   </VirtualHost>
   dev1:/etc/apache2/sites-available
   #

On limite l'accès via Apache, en créant un fichier de mots de passe basique comme ceci :

   dev1:/var/svn/repos/conf# htpasswd -c -m /var/svn/repos/conf/htpasswd monutilisateur
   New password:
   Re-type new password:
   Adding password for user monutilisateur
   dev1:/var/svn/repos/conf
   #

Pour rajouter un utilisateur, il suffit de supprimer l'option ”-c” à la commande. Puis on modifie la config du VirtualHost pour prendre en compte l'authentification.

   <VirtualHost 192.168.1.7>
   ServerName dev1.mondomaine.fr
   ServerAdmin admin@mondomaine.fr
   <Location /repos>
   DAV svn
   SVNPath /var/svn/repos
   AuthType Basic
   AuthName “Depot subversion dev1”
   AuthUserFile /var/svn/repos/conf/htpasswd
   Require valid-user
   </Location>
   </VirtualHost>

Pour ne pas avoir de problème en écriture il nous faut ajouter www-data dans le groupe svn.

La config apache2 pour l'authentification via le LDAP :

<Location /svn >
       DAV svn
       SVNParentPath /var/lib/svn
       Options Indexes FollowSymLinks
       order allow,deny
       allow from all
       AuthType Basic
       AuthName "Mon depot sur dev1"
       AuthBasicProvider ldap
       AuthLDAPURL "ldap://ldap.mondomaine.fr/ou=developpeur,ou=monorganisation,o=asso,c=fr?uid"
       Require valid-user
       ErrorDocument 404 default
</Location>

Il faut également activer le module Authnz_ldap pour que la configuration ci-dessus est un sens :

#  a2enmod authnz_ldap
Considering dependency ldap for authnz_ldap:
Enabling module ldap.
Enabling module authnz_ldap.
Run '/etc/init.d/apache2 restart' to activate new configuration!
#

puis comme indiqué dans le résultat de la commande demander un restart d'apache2.