ubuntuusers.de

Gitolite

Archivierte Anleitung

Dieser Artikel wurde archiviert. Das bedeutet, dass er nicht mehr auf Richtigkeit überprüft oder anderweitig gepflegt wird. Der Inhalt wurde für keine aktuell unterstützte Ubuntu-Version getestet. Wenn du Gründe für eine Wiederherstellung siehst, melde dich bitte in der Diskussion zum Artikel. Bis dahin bleibt die Seite für weitere Änderungen gesperrt.

Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:

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.

Installation

Gitolite kann direkt aus den offiziellen Paketquellen installiert werden:

  • gitolite (universe)

Paketliste zum Kopieren:

sudo apt-get install gitolite 

Oder mit apturl die Pakete installieren. Link: apt://gitolite

Vorbereitung

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 

Einrichtung

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.

Administration

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 6. Februar 2020 17:17 von Heinrich_Schwietering erstellt.
Die folgenden Schlagworte wurden dem Artikel zugewiesen: Versionsverwaltung, Server, Netzwerk