lundi, avril 11 2016

Migration serveur SVN multi-depot

Lors du renouvellement d'un serveur, j'ai eu besoin de déplacer une centaine de dépôts SVN sur le nouveau.

Pour mémo j'en profite pour me faire une petite procédure avec installation de subversion et connexion sur LDAP.

Installation du serveur SVN sur Debian :

apt-get update
apt-get install subversion subversion-tools

Pour la partie LDAP j'ai aussi besoin de ça :

apt-get install libapache2-svn apache2-mpm-worker

Ensuite, il faut créer l’arborescence de base. Dans mon cas je la place dans /var/svn

cd /var
mkdir svn

A partir d'ici, le SVN fonctionne. Il est déjà possible de créer un premier dépôt.

svnadmin create subversion/depot

Configuration de la liaison LDAP :

On commence par adapter le fichier /etc/apache2/mods-enabled/dav_svn.conf à nos besoins.

<Location /svn>
  DAV svn
  SVNParentPath /var/svn
  SVNAutoversioning on

  AuthzSVNAccessFile /var/svn/svnaccess
  AuthBasicProvider ldap
  AuthType Basic
  AuthName "Connection subversion"
  AuthLDAPURL "ldap://ldap.entreprise:389/DC=mon,DC=entreprise,DC=net?sAMAccountName?sub?(objectClass=*)"
  AuthLDAPBindDN "CN=Utilisateur LDAP,DC=mon,DC=entreprise,DC=net"
  AuthLDAPBindPassword "MotDePasse"
  Require valid-user
</Location>

Relancer apache pour valider.

/etc/init.d/apache2 restart

Ensuite on crée le fichier /var/svn/svnaccess qui vas contenir la liste des droits:

Dans mon cas j'ai créé un groupe @admin et j'ai placé Benoit qui a tous les droits sur l'ensemble des repository.

 ### This file is an example authorization file for svnserve.
 ### Its format is identical to that of mod_authz_svn authorization
 ### files.
 ### As shown below each section defines authorizations for the path and
 ### (optional) repository specified by the section name.
 ### The authorizations follow. An authorization line can refer to:
 ###  - a single user,
 ###  - a group of users defined in a special [groups] section,
 ###  - an alias defined in a special [aliases] section,
 ###  - all authenticated users, using the '$authenticated' token,
 ###  - only anonymous users, using the '$anonymous' token,
 ###  - anyone, using the '*' wildcard.
 ###
 ### A match can be inverted by prefixing the rule with '~'. Rules can
 ### grant read ('r') access, read-write ('rw') access, or no access
 ### ('').
 
 [aliases]
 # joe = /C=XZ/ST=Dessert/L=Snake City/O=Snake Oil, Ltd./OU=Research
 # Institute/CN=Joe Average
 
 [groups]
 # harry_and_sally = harry,sally
 # harry_sally_and_joe = harry,sally,&joe
 admin = benoit,toto
 
 # [/foo/bar]
 # harry = rw
 # &joe = r
 # * =
 
 # [repository:/baz/fuz]
 # @harry_and_sally = rw
 # * = r
 
 [/]
 @admin = rw

Passons à la migration des dépôts en deux étapes.

Première étape sauvegarder l'ensemble des dépôts. Pour cela j'utilise le dump de SVN et je zip l'ensemble dépôt par dépôt.

Script d'export export.sh:

for repo in `ls -1`
 do
        echo "Processing $repo"
        svnadmin dump -q --deltas $repo | gzip -c > "/var/svn/"$repo".svn.gz"
 done

Déplacer ensuite les zip sur le nouveau serveur avec filezilla par exemple.

Puis, utiliser le script d'import. Celui-ci dezip les dump puis crée les dépôts svn pour finir par replacer les données.

Script d'import import.sh:

for repo in `ls -1`
 do
        temp=`echo $repo | sed 's/\..*//'`
        echo "Creation du depot: $temp"
        svnadmin create $temp &&
        gzip -d |
        sed -e '/^svn:log$/,/^PROPS-END$/ s/\x0D/ /' -e '/^svn:ignore$/,/^PROPS-END$/ s/\x0D/\n/' |
        cat $repo | gzip -d | svnadmin load -q --force-uuid $temp
 done

Si tout s'est bien passé, se rendre sur la page http://votreserveur/svn/depot Vous devriez retrouver vos dépôts.

mardi, février 26 2013

P2V d'une machine linux Debian.

Vous avez fait un P2V de votre machine Debian sur votre serveur ESX et patatraque ça boot pas !!!

Un petit curseur se balade en haut ?

Pas de panique voici la solution :

Le problème est simple, au redémarrage de la machine virtuelle, la séquence d’initialisation ne se termine pas. En effet, la machine physique était équipée de disque IDE (/dev/hd) et la machine virtuelle Vmware ESXi est équipée de disque SCSI (/dev/sda).

  1. Monter la partition /dev/sda1 en /mnt/sda1
  2. Editer /mnt/sda1/boot/device.map avec nano ou votre éditeur favori et changer le hdaX en sdaX
  3. Editer /mnt/sda1/boot/grub/menu.lst et changer aussi les hdaX en sdaX
  4. Editer /mnt/sda1/etc/mtab et faire de même.
  5. Editer /mnt/sda1/etc/fstab et faire de même.

Une fois les fichiers de config préparé il faut réinstaller grub

Passer en mode chroot sur /dev/sda

chroot /mnt/sda1

Puis lancer l'installation de grub sur le disque sda

grub-install /dev/sda