Git-Server auf CentOS ...
Eigentlich ist "Git-Server" etwas hoch gegriffen, da als Server-Komponente SSH zum Einsatz kommt. Nichtsdestowenigertrotz ist das Endergebnis ein Git-Repository-Server, den man sehr bequem nutzen kann.
Für den Server habe ich einen User
Eine Besonderheit unter CentOS ist, dass dort SELinux läuft und wir dem System bekanntgeben müssen, dass es sich bei
Zu SELinux gibt es reichlich Dokumentation, ich verweise hier einmal auf den SELinux User's and Administrator's Guide bei RedHat. SELinux kann man auch abschalten, wenn einem der Aufwand zu hoch ist.
Der Rest ist relativ einfach und geht strikt nach der gitolite-Anleitung.
Den eigenen Public-Key (wird benötigt, um gitolite zu verwalten) in das Verzeichnis
Fertig!
Die restliche Konfiguration läuft über das admin-Repository, das man auschecken muss und dann bearbeitet. Die neue Konfiguration ist direkt nach einem
Dort finden sich im
Viel Spass!
Für den Server habe ich einen User
git
(UserID 600) angelegt, mit dem die Repositories verwaltet werden sollen und das Homeverzeichnis soll unter /srv/git
liegen:groupadd -g 600 git
useradd -u 600 \
-g 600 \
-d /srv/git \
-m -s /bin/bash \
git
useradd -u 600 \
-g 600 \
-d /srv/git \
-m -s /bin/bash \
git
Eine Besonderheit unter CentOS ist, dass dort SELinux läuft und wir dem System bekanntgeben müssen, dass es sich bei
/srv/git
um ein Homeverzeichnis handelt. Die einfachste Methode ist, den Kontext eines bestehenden Homeverzeichnisses auf das neue Verzeichnis zu übertragen.semanage fcontext -a -e /home/dirk /srv/git
restorecon -R -v /srv/
ls -Zd /srv/git
restorecon -R -v /srv/
ls -Zd /srv/git
Zu SELinux gibt es reichlich Dokumentation, ich verweise hier einmal auf den SELinux User's and Administrator's Guide bei RedHat. SELinux kann man auch abschalten, wenn einem der Aufwand zu hoch ist.
Der Rest ist relativ einfach und geht strikt nach der gitolite-Anleitung.
Den eigenen Public-Key (wird benötigt, um gitolite zu verwalten) in das Verzeichnis
/srv/git
kopieren, für mich hat sich dafür das Format user-host.pub
bewährt (ich habe auf jedem Host einen separaten SSH-Key und nutze nicht überall den gleichen).git clone git://github.com/sitaramc/gitolite
mkdir -p ${HOME}/bin
gitolite/install -to ${HOME}/bin
export PATH=${HOME}/bin:${PATH}
echo 'PATH=${HOME}/bin:${PATH}' >> ${HOME}/.bashrc
gitolite setup -pk user-host.pub
mkdir -p ${HOME}/bin
gitolite/install -to ${HOME}/bin
export PATH=${HOME}/bin:${PATH}
echo 'PATH=${HOME}/bin:${PATH}' >> ${HOME}/.bashrc
gitolite setup -pk user-host.pub
Fertig!
Die restliche Konfiguration läuft über das admin-Repository, das man auschecken muss und dann bearbeitet. Die neue Konfiguration ist direkt nach einem
git push
aktiv.git clone git@host:gitolite-admin.git gitolite-admin-host.git
Dort finden sich im
keydir
-Verzeichnis alle Public Keys von Usern, die Zugriff auf irgendeines der Repositories haben sollen und im Verzeichnis conf
liegt die gitolite.conf
mit einem Beispiel-Repository.Viel Spass!