Git / Gitolite

Ubuntu Git-Server / Gitolite einrichten

Git ist ein sehr gutes und vielseitiges Versionierungssystem. Mit Git lassen sich beliebige Projektgrößen sauber und einfach versionieren. Vor allem Firmen, die sich für eigene Softwareentwicklung entschieden haben, sollten ihre Software einer Versionskontrolle unterziehen. Einige lassen Ihre Git-Repositories bei externen Anbietern hosten. Die anderen Wollen ihre Sourcen den Hostern nicht anvertrauen und setzen eigene Server auf. Es gibt sehr unterschiedliche Möglichkeiten eigenen Git-Server aufzusetzen. Eine einfache ist die Verwendung eines Ubuntu-Servers in Verbindung mit Gitolite.

Ubuntu-Server (http://www.ubuntu.com/server)
Gitolite (http://gitolite.com)

Konfiguration des Ubuntu Servers

Git-Core installieren

sudo apt-get install git-core
sudo apt-get install git

Gitolite installieren

sudo apt-get install gitolite

Git/Gitolite Benutzer hinzufügen (Password wird weg gelassen)

sudo adduser --system --group --shell /bin/bash --disabled-password git

Wird ein Password benötigt?

sudo passwd git

Konfiguration von Clients auf Linux oder Widows

Shell-Befehl zum erzeugen des ssh-Keys.

ssh-keygen -t rsa

Linux

Direkt die Shell öffnen und den Befehl eingeben. In dem Benutzer-Verzeichnis sollte ein Ordner .ssh mit zwei Dateien erzeugt werden.

Private Schlüssel: id_rsa
Öffentlicher Schlüssel: id_rsa.pub

Falls Git nicht auf der Client-Maschine vorinstalliert wurde, muss dieser nachinstalliert werden.

Windows

Die Client-Konfiguration unter Windows erfolgt zuerst mit der Installation von Git. Bitte herunterladen und installieren (https://git-scm.com/) Nach der Installation, die Git-Bash öffnen und den oberen Befehl eingeben. Nach der Ausführung sollte in dem Benutzer-Verzeichnis ein Ordner .ssh mit zwei Dateien erzeugt werden.

Private Schlüssel: id_rsa
Öffentlicher Schlüssel: id_rsa.pub

Den Public-Key(.pub) auf den Git-Server kopieren.

scp ~/.ssh/id_rsa.pub username@git_server_IP_address:/tmp/git-admin.pub

Den Git-Server abschließend konfigurieren

In der Konsole als Git-User einloggen

sudo su git

Konfiguration von Gitolite anstoßen

gl-setup /home/git/.ssh/git-admin.pub

Gratulation, der eigene Git-Server ist jetzt einsatzbereit!

Git-Benutzer mit Gitolite verwalten

Voraussetzung ist die Installation von Git auf der Client-Maschine.

Das Gitolite, Repository klonen.

git clone git@git_server_IP_address:gitolite-admin

Nach dem Klonen wird ein Verzeichnis gitolite-admin erzeigt in dem sich zwei weitere Unterverzeichnisse befinden.

gitolite-admin
       | - conf
       | - keydir

In das Verzeichnis keydir werden öffentliche ssh-keys der nötigen Git-Benutzer rein kopiert.

cp /path/to/benutzer/public/key.pub ~/gitolite-admin/keydir/benutzer.pub

Anschließend wird die die gitolite.conf Datei in dem Verzeichnis conf editiert.

Der Datei-Aufbau sollte sich wie folgt zusammensetzen:

repo gitolite-admin
         RW+        =     git-admin

repo meinprojekt
         RW+       =      benutzer

Drei mögliche Rechte können an Benutzer vergeben werden:

R: Nur lesen
RW: Lesen und Ändern, die Git-Referenzen können allerdings nicht modifiziert werden.
RW+: Vollzugriff(löschen und modifizieren der Git-Referenzen möglich)

Mit den letzen Befehlen teilen Sie Gitolite die Änderungen mit

git add .
git commit -a -m “Erstelle meinprojekt Repository ”

Das neue Reppository wurde erzeugt und kann benutzt werden! Beleibt noch die Option dieses Repository auf die lokale Maschine zu klonnen:

git clone git@git_server_IP_address:meinprojekt

Abschluß

Das Gitolite, erlaubt es den Git-Server leicht zu verwalten. Benutzer, Repositories und deren Rechte können ebenfalls unkompliziert gesetzt oder entfernt werden. Dabei bleibt das installierte Betriebssystem geschützt. Der Administrator braucht sich nicht um alle Benutzer des Betriebssystem zu kümmern. Das Tool-Gitolite erlaubt es sich nur auf die Versionskontrolle zu konzentrieren ohne zusätzlichen Betriebsystemabhängigen Aufwand.