Adrien's log

Yet Another Note Pad

Installer un gestionnaire de dépôts avec gitolite

by adrien on 29 septembre 2011

Gitolite ?

Gitolite permet de gérer plusieurs dépôts avec des fonctionnalités comme la gestion multi-utilisateurs et les droits en lecture ou lecture-écriture.

Nous partirons sur une architecture type client-serveur et du principe que vous avez git d’installer et que vous savez l’utiliser.

Coté Serveur

Creer un utilisateur ‘git’ :

adduser git

Assurez-vous d’avoir un serveur SSH qui tourne sur la machine qui hébergera les dépôts.

Enfin copiez la clé RSA de la machine cliente (et de votre compte qui servira d’administrateur pour les dépôts) dans le .ssh/authorized_keys de l’utilisateur ‘git’ du serveur.

Coté Client

Télécharger le code de Gitolite via la ligne de commande :

git clone http://github.com/sitaramc/gitolite.git

Entrez dans le repertoire Gitolite et exécutez le script :

src/gl-easy-install git server monuser

git est l’utilisateur de Gitolite sur le serveur, server correspond à l’adresse de votre serveur et monuser est l’utilisateur de la machine locale qui sera administrateur de Gitolite.

Répondez en appuyant sur la touche Entrée aux diverses informations que Gitolite vous donne puis, au moment où il vous affiche le fichier de configuration, tapez ‘: x‘ (sans espace, moi j’ai un smiley qui se tape l’incruste !) puis Entrée. Continuez enfin à maltraiter la touche Entrée.

Une fois terminé, un dossier gitolite-admin sera créé dans votre dossier personnel. C’est la dedans que va se passer le reste de la configuration.

Ajout d’utilisateurs

Dans un premier temps, récuperez les clés publiques RSA de toutes les personnes qui vont avoir besoin d’acceder à vos dépôts puis ajoutez les dans ~/gitolite-admin/keydir. Ces clés peuvent se trouver sous la forme ‘user.pub’ ou bien ‘user@machine.pub’ dans le cas où un même utilisateur voudrait avoir accès aux dépôts depuis plusieurs machines differentes.

Pour finir l’ajout des nouveaux utilisateurs, il faut envoyer la configuration au serveur :

git commit -am "Ajout d'utilisateurs"
git push

Pour tester, vous pouvez cloner le dépôt ‘testing’, qui a été créé par Gitolite, soit par la commande :

git clone gitolite:testing.git

Cette commande utilise une configuration pour SSH faite par Gitolite. Vous pouvez la voir dans .ssh/config.

Ou bien vous pouvez utiliser cette commande :

git clone git@server:~/repositories/testing.git

Ajout de dépôts

1
2
3
4
5
repo    gitolite-admin
        RW+     =   adrien
 
repo    testing
        RW+     =   @all

La configuration n’est pas compliqué : une ligne ‘repo nomdurepo’ permet de créer un dépôt tandis que les lignes en dessous permettent de gérer les accès au dépôts.

R correspond à l’accès en lecture, RW à l’accès en lecture et écriture, tandis que RW+ vous permet plus de droits, comme par exemple la suppression d’un commit.

Gitolite peux aussi gérer les groupes d’utilisateurs, on peut le voir avec l’exemple du dépôt ‘testing’ et le groupe @all qui correspond à tout le monde.

On créer un groupe de la manière suivante :

@groupe = user1 user2 user3

Voilà pour gitolite. Plus qu’à commiter maintenant !

PS : il se peut que vous rencontriez le problème ‘gitolite-admin does not appear to be a git repository’. J’ai résolu celui-ci en enlevant la clé RSA du fichier .ssh/authorized_keys du serveur que j’avais ajouté au tout début de l’installation.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *