Git als Versionsverwaltung wird immer beliebter und die Dienste
gitorious.org oder
github.com boomen. Wer dennoch Herr seiner Daten bleiben will oder wer die Kosten für einen Pro-Account bei diesen Diensten scheut kann sich leicht mit einer eigenen Repo-Verwaltung behelfen. Gitolite ist ein tolles Tool um genau dies zu ermöglichen.
Installation
Git und gitolite sind Bestandteil des Debian Squezze Repositories. Die Installation sollte also wieder ohne großen Aufwand erfolgen.
#apt-get install git-core gitolite
Falls noch nicht geschehen, genenrieren wir uns einen SSH-Key.
#ssh-keygen
Diesen Key benötigen wir für den initialen Zugang zur gitolite-Verwaltung. Wir kopieren ihn nach
/tmp um ihn für unseren git-Systemuser verfügbar zu machen.
#cp .ssh/id_rsa.pub /tmp/gitolite_init.pub
Optional können wir noch ein paar globale git Konfigurationsvariablen setzen.
git config --global user.name "Dein Name"
git config --global user.email deine@email.de
Nun erstellen wir unser zentrales Repoverzeichniss und legen einen git-Systemuser an.
#/var/git-repos
#useradd -d /var/git-repos/ -s /bin/bash git
#chown git:git /var/git-repos/
Nun wechseln wir zu unserem git-Systemuser und starten das Setup von gitolite in seinem home-Verzeichniss. Wichtig ist die Übergabe des inititalen SSH-Keys den wir in /tmp abgelegt haben. Der Key in
/tmp wird danach nicht mehr benötigt und kann gelöscht werden.
#su git
$cd /home/git-repos
$gl-setup /tmp/gitolite_init.pub
$exit
#rm /tmp/gitolite_init.pub
Dann können wir das administrative Repo auschecken und die Konfigurationen auf unsere Bedürfnisse anpassen.
git clone git@127.0.0.1:gitolite-admin.git
In
./gitolite-admin/conf/gitolite.conf werden die Repos und Berechtigungen verwaltet. im Verzeichniss
./gitolite-admin/keydir/ werden die public-ssh-keys der User abgelegt.
Die Änderungen werden erst wirksam wenn wir das repo auf den Server pushen.
#git add .
#git commit .
#git push
Falls wir in
./gitolite-admin/conf/gitolite.conf ein neues Repo konfiguriert haben wird dies nach einem push auch automatisch angelegt und steht sofort bereit.
Fazit
Gitolite bietet die Möglichkeit mehrere git-Repos für mehrere User komfortabel zu verwalten ohne dem User weitere Rechte auf dem System ermöglichen zu müssen. Gitolite setzt für die Authentifizierung von Benutzern ausschließlich auf SSH-Keys. Eine Authentifizierung via Passwort ist nicht möglich. Es sind sehr komplexe Berechtigungsstrukturen möglich die Dokumentation dazu findet man
hier.
Wer ein schönes Web-Interface braucht sollte ein Blick auf
gitlabhq.com werfen. Dies scheint ein interessantes Projekt zu sein und setzt direkt auf gitolite.
Kommentare