Sélectionner une page

Octopuce hébergeant de nombreuses agences web, leurs clients et les projets de développement de tout ce petit monde, il nous est souvent demandé d’installer des systèmes de contrôle de version.

Nous utilisions jusque-là subversion (SVN) mais certains de nos clients utilisent maintenant GIT, le nouveau système de gestion de source distribué, visiblement plus léger et rapide que SVN.

Nous avons donc dû nous poser la question de l’hébergement de ces dépôts GIT. Rapidement, nous sommes tombés sur le logiciel Gitosis, qui permet de gérer facilement ses dépôts GIT avec un accès SSH, mais sans nécessité de disposer d’un accès shell au serveur !

Voici donc comment utiliser Gitosis sous Debian pour créer des dépôts :

Gitosis, mode d’emploi

Gitosis est facile à utiliser notamment par le fait qu’un package pour Debian existe, qui nous pose les 3 questions nécessaires au bon fonctionnement de Gitosis : le nom du compte de Gitosis (je conseille « git », court et explicite), le chemin dans lequel on stockera les sources (je conseille /home/git) et la première clé qui sera autorisée à utiliser le dépôt principal. Donc pour l’installer, il faut lancer sur le serveur de sources :

aptitude install gitosis git-core

Un dépôt « principal », nommé « gitosis-admin.git », permet d’administrer les droits d’accès aux dépôts sur le serveur. En effet, c’est via un dépôt GIT que Gitosis gère la liste des clés autorisées et la liste des autorisations d’accès en lecture ou en écriture aux dépôts.

Une fois Gitosis installé (avec votre clé SSH personnelle) utilisez la commande suivante pour obtenir une copie locale du dépôt gitosis-admin :

git clone git@votreserveur.fr:gitosis-admin.git

Vous obtiendrez un dossier gitosis-admin/ contenant un fichier gitosis.conf (dans lequel on définit les droits d’accès aux dépôts pour chaque liste d’utilisateur) et un dossier keydir/ dans lequel on créera un fichier au nom d’un utilisateur contenant la clé SSH publique de cet utilisateur.

Une fois cela fait, on envoie ces nouveaux fichiers sur le serveur Gitosis via

git add .
git commit -a -m "ajout clefs et projets"
git push

Par exemple, j’ai créé un groupe « octopuce » dans mon gitosis.conf, dans lequel les utilisateurs (listés dans la directive « members ») ont droit d’accès en écriture (via la directive « writable ») à des dépôts particuliers :

[gitosis][gitosis-octopuce]
writable = gitosis-admin projet1 projet2
members = benjamin said

Ainsi, dans keydir, j’aurai créé les fichiers « benjamin » et « said » contenant les clés de Saïd et Benjamin.

Une fois cela fait, on peut créer le dépôt, par exemple pour le projet1. Pour créer le dépôt, sur votre ordinateur, créez vos premiers fichiers source, et tapez :

# On crée le dépôt local quelque part sur sa station de travail :
mkdir projet1
cd projet1
git init
# On signale à git qu'il sera envoyé sur le serveur :
git remote add origin git@votreserveur.fr:projet1.git
# On lui ajoute les premiers fichiers :
touch README
echo "Premier fichier d'initialisation" > README
git add .
# Que l'on valide :
git commit -am "initialisation du projet1"
# Enfin, on envoie tout cela sur le serveur.
git push origin master:refs/heads/master

Et voilà, votre premier dépôt a été créé sur git.

Dans l’article suivant, nous verrons comment utiliser les hooks de git pour mettre à jour automatiquement un site de développement.