Ubuntu 14.04 Trusty Tahr
Gitolite ermöglicht das Aufsetzen eines Git-Servers, wobei die Software selbst lediglich einen Wrapper zwischen dem SSH-Zugang und Git darstellt. Das Hinzufügen und Entfernen von Git-Repositories sowie die Verwaltung der Benutzer selbst erfolgt über ein spezielles Git-Repository.
Gitolite kann direkt aus den offiziellen Paketquellen installiert werden:
gitolite (universe)
mit apturl
Paketliste zum Kopieren:
sudo apt-get install gitolite
sudo aptitude install gitolite
Bevor man Gitolite auf dem Server einrichtet, wird ein SSH-Zugangsschlüssel gebraucht, mit dem die Administration erfolgt. Diesen erzeugt man an dem Gerät, von welchem aus Gitolite administriert werden soll:
ssh-keygen -t rsa
Als Schlüsselname wählt man beispielsweise "gitolite_rsa". Anschließend kopiert man den Public-Key in das Verzeichnis /tmp auf dem Server:
scp ~/.ssh/gitolite_rsa.pub username@example.org:/tmp/git-admin.pub
Die Einrichtung von Gitolite erfolgt über eine Rekonfiguration des gleichnamigen Pakets:
sudo dpkg-reconfigure gitolite
Zuerst wird man nach dem Benutzernamen für Gitolite (Standard: gitolite
) sowie nach dem Homeverzeichnis des Benutzers (/var/lib/gitolite) gefragt. Anschließend übergibt man den Pfad des zuvor hoch geladenen Schlüssels: /tmp/git-admin.pub.
Damit wäre die serverseitige Konfiguration abgeschlossen.
Wie bereits weiter oben erwähnt, erfolgt die Administration von Gitolite über ein spezielles Git-Repository, welches bei der Einrichtung automatisch erzeugt wird. Mit diesem ist es möglich, neue Git-Repositories auf dem Server zu erzeugen und auch die Zugriffe darauf (inklusive Benutzer und Gruppen) festzulegen. Um damit arbeiten zu können, klont man sich dieses vom Server:
git clone gitolite@example.org:gitolite-admin
Das Repository enthält die Verzeichnisse keydir (Ablageort der Public-Keys aller Benutzer) und conf (enthält die Konfigurationsdatei). Die Standardkonfiguration in der Datei gitolite.conf sieht dabei wie folgt aus, das Repository "testing" wird für Testzwecke automatisch erstellt und kann getrost gelöscht werden:
repo gitolite-admin RW+ = admin repo testing RW+ = @all
Die Konfiguration ist recht einfach gehalten: Das Schlüsselwort "repo
" definiert ein Git-Repository, die Zeilen danach regeln den Zugriff. R
gibt den Lesezugriff, W
den Schreibzugriff an. Eine genauere Erläuterung inklusive aller Optionen findet sich in der offiziellen Gitolite-Dokumentation .
Um Repositories hinzuzufügen, erweitert man die Datei etwa um folgenden Inhalt:
repo beispiel RW+ = admin
Anschließend erzeugt man einen Commit und pusht die Änderungen zum Server. Über einen git-hook wird das neue Repository dann auf dem Server erstellt (erkennbar anhand der Ausgabe des push-Befehls):
1 2 3 4 5 6 | git commit -am "Repository „beispiel“ hinzugefügt" git push […] remote: creating beispiel... remote: Initialized empty Git repository in /var/lib/gitolite/repositories/beispiel.git/ […] |
Das neu erzeugte Repository kann anschließend vom Server geklont werden, um damit zu arbeiten (die Endung .git ist nicht nötig, macht allerdings erkenntlich, dass es sich um ein Git-Repository handelt):
git clone gitolite@example.org:beispiel.git
Diese Revision wurde am 29. Januar 2015 13:44 von JoeNazz erstellt.