2016

09

fév.

Installation de gitolite

Gitolite est le remplaçant officiel de gitosis dans les dépôts debian, il s'agit d' une refactorisation de gitosis réalisée par Sitaram Chamarty.

L'intérêt de ce nouvel interface réside d'une part dans le fait qu'un utilisateur de git ne peut pas se connecter au shell de l'utilisateur gérant les dépôts (git ou gitolite) et d'autre part, on peut gérer des permissions spécifiques aux branches.

1.Quelques bases

Pour comprendre le fonctionnement de gitolite, il faut bien appréhender le fait que l'on va utiliser un utilisateur systeme git pour faire fonctionner gitolite et gérer les dépôts.

C'est dans le répértoire de cet utilisateur que l'on installera le logiciel gitolite, c'est aussi à travers lui que s'effectuera l'authentification par clés ssh, enfin c'est lui qui gérera les permissions accordées sur les dépôts.

L'administrateur du serveur ou un utilisateur dédié à l'administration de gitolite sera utilisé pour la gestion de l'administration de gitolite, c'est sur son répertoire home que sera cloné le dépôt correspondant à gitolite-admin. C'est par son intermédiaire que nous créerons les dépôts, et les permissions via les clés publiques des utilisateurs de git. La mise à jour de la configuration s'effectuera en commitant les changements effectués sur le fichier de configuration de gitolite présent dans gitolite-admin/conf.

2.Installation de gitolite

1Si ce n'est pas déjà fait, on installe git (pour le moins) et openssh !

 > sudo apt-get install git-core openssh-server openssh-client 

2On ajoute au système l'utilisateur git

 > sudo useradd git -m -g git -d /home/git -s /bin/bash 

3 On ajoute un mot de passe au nouvel utilisateur git

 > sudo passwd git 

4A partir du compte de l'administrateur serveur standart sur lequel nous nous trouvons normalement,

on crée la clef ssh que nous appelerons admin

 ssh-keygen -t dsa 

on doit alors avoir une paire de clef dans le répertoire .ssh du compte administrateur admin et admin.pub, la clef ayant l'extension .pub étant la clef publique.

5Cette clé on va la copier via la commande ssh-copy vers le repertoire de l'utilisateur git qui à partir de là saura que les requêtes provenant du propriétaire de

cette clé seront autorisées. les clés autorisées seront copiées dans un fichier appelé .authorized-keys

 ssh-copy-id -i ~/.ssh/admin.pub <$git-user>@<$serveur> (serveur est normalement localhost,git-user est git) 

6 Maintenant nous devons changer d'utilisateur pour l'utilisateur git afin d'installer gitolite.

 > su git > git clone git://github.com/sitaramc/gitolite.git 

7On crée un répertoire bin dans lequel viendrons les executables de gitolite.

 > mkdir bin > gitolite/install -ln 

8 On se place dans le répertoire bin pour lier la clé admin.pub à gitolite.

 > cd bin > ./gitolite setup -pk ../.ssh/admin.pub 

9Lorsque c'est terminé on revient en tant qu'utilisateur "administrateur" et on clone le dépôt gitolite-admin.

 > su admin > git clone git@serveur:gitolite-admin 

10Si tout a fonctionné correctement, il doit se trouver dans votre répertoire utilisateur un répertoire nommé gitolite-admin.

Le fichier de configuration se trouve dans le sous répertoire conf et s'appelle gitolite.conf, les clés publiques des utilisateurs sont à placer dans le sous-répertoire keydir.

Pour la configuration des dépôts, je vous renvoie à la doc officielle qui est très bien faite.doc de gitolite

3.Troubleshooting !!!

Si lors de la connexion ssh le serveur demande un mot de passe alors c'est que comme pour moi, votre serveur n'a pas pu identifier la clé qu'il lui faut utiliser pour se connecter à git. Pas de panique, pour que votre serveur ssh retrouve ses petits, on créé dans le répertoire .ssh de votre dossier utilisateur un fichier de configuration spécifique. Dans ce dernier, on va créer des alias que l'on va utiliser pour se connecter avec la clé à utiliser. . Ne pas oublier de définir forward agent à yes dans le fichier.

Exemple pour un hôte gitolite :

 host gitolite user git hostname localhost identityfile ~/.ssh/admin.pub port 22  ForwardAgent yes 

Pour récupérer les dépôts, on utilisera alors l'alias créé qui se chargera pour nous de récupérer le bon fichier de clé publique.

 > git clone gitolite:gitolite-admin 

Gitolite est maintenant installé sur votre serveur. Attention à l'ordre des opérations... Et bon code à tous.

cliquez sur la flèche pour accèder au partage et informations supplémentaires

Article rédigé par GuruGeek le mardi 09 février 2016

Aucun tag n'a été associé à ce post.
Il n'existe pas encore de commentaires pour Installation de gitolite

Vos idées sur l'article nous interesse

Dispositif anti-robots