Hébergement de dépôts GIT sur un serveur via Gitosis

Le 18 janvier 2011 , par Benjamin Sonntag,

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 est 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’aurais 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

 

 

Sur l'OctoBlog

Logiciels Libres ?

Acteurs du Libre les membres de l’équipe Octopuce participent à divers projets, soit au nom de l’entreprise soit en leur nom propre, sur le temps offert à l’équipe pour conduire des projets personnels.

Nous avons contribué, dès ses débuts, à la conception et mise en oeuvre de la plateforme AlternC, panneau de contrôle web sur une bases 100% libre. Cette plateforme nous la proposons pour votre hébergement mutualisé ou dédié. De la même manière est né Dmanager, logiciel de partage de fichiers via internet.

C’est ainsi que pour vos projets Octopuce privilégie le choix de solutions et logiciels libres quand ceux-ci répondent à vos besoins. L’ensemble des développements réalisés pour vous sous licence libre sont mis à la disposition de tous.

Une référence ?

PricewaterhouseCoopers (« PwC ») développe en France des missions d’audit, d’expertise comptable et de conseil pour des entreprises de toutes tailles, publiques et privées. Octopuce est en charge de l’administration système des serveurs Linux de PWC France.

Scorpio Music, confiante dans nos compétences d’administration système, supervision et gestion de la sécurité des systèmes Linux, nous a confié l’administration de son architecture hébergée sous Debian GNU/Linux.