Mit E-Mail-Diensten muss sich jeder Administrator früher oder später einmal beschäftigen. Das zur CeBIT erscheinende ADMIN 02/2012 gibt dazu Praxis-Tipps und ... (mehr)

Gitosis

Im Prinzip funktioniert Gitosis ähnlich wie Gitolite: Man benötigt einen speziellen Benutzer-Account mit SSH-Zugang, über den die entsprechenden Skripte aufgerufen werden. Installiert man Gitosis auf Ubuntu, findet man nach der Installation den Benutzer »gitosis« und das Verzeichnis »/srv/gitosis« . Analog zu Gitolite legt Fedora auch für Gitosis ein Verzeichnis »/var/lib/gitosis« und den gleichnamigen Benutzer an. Im Folgenden soll die manuelle Installation die Vorgehensweise verdeutlichen.

Zuerst checken Sie auf dem Server aus dem Github-Repository die Gitosis-Software aus, etwa im Home-Verzeichnis »/root« des Administrators:

git clone git://eagain.net/gitosis.git

Als Superuser wechseln Sie in das Gitosis-Verzeichnis und führen »python setup.py install« aus, was die Dateien systemweit installiert. Kopieren Sie, wie im Gitolite-Teil beschrieben, Ihren Public Key auf den Server. Dort arbeiten Sie per »su - git« mit der Git-Benutzer-ID weiter und initialisieren Gitosis mit dem Schlüssel:

gitosis-init < /tmp/ofrommel.pub
Initialized empty Git repository in /home/git/repositories/gitosis-admin.git/
Reinitialized existing Git repository in/home/git/repositories/gitosis-admin.git/

Erhalten Sie hier eine Fehlermeldung über fehlende Berechtigungen, liegt das vielleicht daran, dass Sie als Root im gleichen Verzeichnis die Gitosis-Distribution ausgecheckt haben, die Sie nun als »git« nicht überschreiben dürfen.

Wie bei Gitolite beschrieben, läuft auch bei Gitolite die Administration über ein spezielles Repository ab. Checken Sie es auf einem Client-Rechner folgendermaßen aus:

git clone git@Server:gitosis-admin.git

Im Verzeichnis »gitosis-admin« befindet sich nun die Konfigurationsdatei »gitosis.conf« und das Verzeichnis »keydir« für die SSH-Schlüssel. Die Konfigurationsdatei, die gegenüber dem Urzustand um eine Gruppe »webcoders« und ein neues Repository »webprojekt« erweitert wurde, ist in Listing 3 zu sehen. Mit »git commit -a« und »git push« übermitteln Sie die Änderungen an den Git-Server.

Listing 3

gitosis.conf

 

Um das neue Projekt anzulegen, erzeugen Sie ein neues Verzeichnis mit dem Namen »webprojekt« und wechseln hinein. Führen Sie die beiden folgenden Befehle aus, um das Repository zu initialisieren:

git init
git remote add origin git@Server:webprojekt.git

Haben Sie neue Dateien in dem Verzeichnis angelegt, stellen Sie sie mit »git add« unter Versionskontrolle. Um das Repository mit dem Server für alle Branches zu synchronisieren, verwenden Sie wieder das Push-Kommando:

git push origin master:refs/heads/master

Tritt bei der Verwendung von Gitosis ein Fehler auf, können Sie Debugging-Meldungen einschalten, indem Sie in der Konfigurationsdatei »gitosis.conf« im Abschnitt »[gitosis]« die Zeile »loglevel = DEBUG« einfügen (und dann wie gehabt auf den Server pushen).

Mehr Informationen über die Benutzung von Git selbst können Sie dem ADMIN-Artikel [1] entnehmen oder dem online frei verfügbaren Buch "Pro Git" [7], das übrigens auch je ein Kapitel zu Gitosis und Gitolite enthält. Wer noch eine Ansicht der Repositories im Webbrowser haben möchte, kann als Webfrontend beispielsweise Gitweb verwenden.

Abbildung 2: Schmucklos, aber übersichtlich: das Webfrontend Gitweb, hier bei samba.org.
comments powered by Disqus
Mehr zum Thema

Git-Hosting mit Gogs

Einen eigenen Git-Server zur Versionsverwaltung aufzusetzen, kann mit prominenten Softwarelösungen ziemlich viele Ressourcen verschlingen. Etwas leichter geht es mit dem schlanken Gogs.

Artikel der Woche

Eigene Registry für Docker-Images

Wer selber Docker-Images herstellt, braucht auch eine eigene Registry. Diese gibt es ebenfalls als Docker-Image, aber nur mit eingeschränkter Funktionalität. Mit einem Auth-Server wird daraus ein brauchbares Repository für Images. (mehr)
Einmal pro Woche aktuelle News, kostenlose Artikel und nützliche ADMIN-Tipps.
Ich habe die Datenschutzerklärung gelesen und bin einverstanden.

Konfigurationsmanagement

Ich konfiguriere meine Server

  • von Hand
  • mit eigenen Skripts
  • mit Puppet
  • mit Ansible
  • mit Saltstack
  • mit Chef
  • mit CFengine
  • mit dem Nix-System
  • mit Containern
  • mit anderer Konfigurationsmanagement-Software

Google+

Ausgabe /2019