Wie installiert man einen Gitblit Server unter Ubuntu, so dass dieser automatisch die Benutzer von Linux über PAM einbindet und automatisch beim Hochfahren gestartet wird?
Ganz einfach. Befolge folgende Schritte und du hast in kürzester Zeit einen Gitblit Server am Start.
Vorbedingungen
- Java 8 oder äquivalente JVM ist installiert.
- Du verfügst über sudo Rechte
- Du hast auf den Ubuntu Server/Rechner Zugriff über ssh oder ein Terminal
Anleitung
Download und Installation
Lade das Gitblit GO für Linux/OSC unter Gitblit herunter. Aktuell (Stand Oktober 2016) ist das der Download Link: http://dl.bintray.com/gitblit/releases/gitblit-1.8.0.tar.gz
Lade es über wget herunter:
user@host:~$ wget http://dl.bintray.com/gitblit/releases/gitblit-1.8.0.tar.gz
Kopiere den Tar-Ball in das Verzeichnis opt:
user@host:~$ sudo cp gitblit-1.8.0.tar.gz /opt/
Wechsle in das opt Verzeichnis:
user@host:~$ cd /opt
Entpacke den Tar-Ball:
user@host:/opt$ sudo tar -xvf gitblit-1.8.0.tar.gz
Symlink erstellen:
user@host:/opt$ sudo ln -s /opt/gitblit-1.8.0 /opt/gitblit
gitblit user die Rechte an dem Gitblit Verzeichnis sowie dem Symlink geben:
user@host:/opt$ sudo chown -R gitblit:gitblit /opt/gitblit-1.8.0
user@host:/opt$ sudo chown -R gitblit:gitblit /opt/gitblit
Benutzer korrekt einrichten
Für den Gitblit Server Dienst muss ein “gitblit” Benutzer eingerichtet werden, da das Service Script so einen Benutzer erwartet.
Dabei befolgt man nachfolgende Schritte.
Benutzer als System Benutzer anlegen:
user@host:/opt$ sudo adduser --system --shell /bin/bash --home /opt/gitblit/data gitblit
Eine Gitblit Gruppe anlegen:
user@host:/opt$ sudo addgroup gitblit
Den Benutzer der Gitblit Gruppe zuweisen:
user@host:/opt$ sudo addgroup gitblit gitblit
Für PAM Authentication Gitblit User zu Gruppe shadow hinzufügen:
user@host:/opt$ sudo addgroup gitblit shadow
Dienst einrichten
Damit der Gitblit Server automatisch hochfährt sollte man ihn noch als Dienst einrichten.
In das Verzeichnis /opt/gitblit/ wechseln:
user@host:/opt$ cd /opt/gitblit
Dort das Skript install-service-ubuntu.sh ausführen:
user@host:/opt/gitblit$ sudo ./install-service-ubuntu.sh
Damit wird der Gitblit Server als Dienst eingerichtet.
Konfiguration von Gitblit
Wie Gitblit auf PAM zugreifen kann wird sehr gut unter http://gitblit.com/setup_authentication.html dokumentiert.
Wie die SSH Zertifikate eingerichtet werden können wird sehr gut unter http://gitblit.com/setup_go.html beschrieben. Einziger Nachteil ist hier, dass man ein X-Windows braucht.
Kurzanleitung für PAM
Unter /etc/pam.d/ eine Datei gitblit anlegen:
user@host:/opt$ sudo vim /etc/pam.d/gitblit
Folgenden Inhalt hinzufügen:
1
2
3
# PAM configuration for the gitblit service
# Standard Un*x authentication.
@include common-auth
Das neue PAM Config File in den gitblit.properties (Zeile 31, 32) referenzieren:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#
# GITBLIT.PROPERTIES
#
# Define your custom settings in this file and/or include settings defined in
# other properties files.
#
# Include Gitblit's 'defaults.properties' within your configuration.
#
# NOTE: Gitblit will not automatically reload "included" properties. Gitblit
# only watches the 'gitblit.properties' file for modifications.
#
# Paths may be relative to the ${baseFolder} or they may be absolute.
#
# COMMA-DELIMITED
# SINCE 1.7.0
include = defaults.properties
#
# Define your overrides or custom settings below
#
server.storePassword = <passwort>
git.packedGitLimit = 150m
web.siteName = <Host Name>
server.certificateAlias = <Vollqualifizierter Host Name im Netz>
# Authentication
realm.authenticationProviders = pam
realm.pam.serviceName = gitblit
Server Starten
Den Server dann starten mit folgendem Befehl:
user@host:/opt$ sudo /etc/init.d/gitblit start
Trouble Shooting
Log File Analyse des Gitblit Servers mit dem less Befehl:
user@host:/opt$ less /opt/gitblit/data/logs/gitblit.log
Log File Analyse des Ubuntu Dienstes:
user@host:/opt$ less /var/log/syslog