[[Vorlage(Archiviert, )]] {{{#!vorlage Wissen [:Pakete installieren: Installation von Programmen] [:Terminal: Ein Terminal öffnen] [:sudo: Root-Rechte] }}} [[Inhaltsverzeichnis(1)]] [http://gitolite.com/gitolite/ Gitolite] {en} 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: {{{#!vorlage Paketinstallation gitolite, universe }}} == 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: {{{#!vorlage Befehl 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: {{{#!vorlage Befehl scp ~/.ssh/gitolite_rsa.pub username@example.org:/tmp/git-admin.pub }}} == Einrichtung == Die Einrichtung von Gitolite erfolgt über eine Rekonfiguration des gleichnamigen Pakets: {{{#!vorlage Befehl 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: {{{#!vorlage Befehl 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 [http://gitolite.com/gitolite/gitolite.html offiziellen Gitolite-Dokumentation] {en}. 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): {{{#!code bash 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): {{{#!vorlage Befehl git clone gitolite@example.org:beispiel.git }}} = Links = * [http://gitolite.com/gitolite/ Projektseite] {en} * [http://gitolite.com/gitolite/gitolite.html Gitolite Dokumentation] {en} * [:Versionsverwaltung:] {Übersicht} Übersichtsartikel #tag: Netzwerk, Server, Versionsverwaltung