Installation von GitLab auf einem Debian 9 VPS-Server + ISPconfig

Procédure

GitLab ist ein mächtiges Werkzeug, mit dem du deine verschiedenen Git-Repositories einfach verwalten kannst. Allerdings kann seine Einrichtung mit unseren Betriebssystemen, die mit ISPConfig 3 ausgestattet sind, leicht Kopfzerbrechen bereiten. Aus diesem Grund haben wir uns entschieden, dir eine vollständige Anleitung für diesen Vorgang zur Verfügung zu stellen.

Voraussetzungen

GitLab benötigt mindestens 2 GB Arbeitsspeicher. In Verbindung mit den mindestens 2 GB für ISPConfig 3 und der Anzahl der ausgeführten Prozesse (die fast 30 % der Quote für ISPConfig allein ohne jegliche Website ausmachen) reicht dasVPS L-Angebot der LWS Starter-Reihe für kleine Projekte aus, aber wir empfehlen die VPS Pro-Reihe für alle Projekte mit professionellem Anspruch.

Für dieses Tutorial verwenden wir einen VPS mit dem leeren Betriebssystem Debian 9 + ISPConfig 3 aus dem LWS-Panel. Hier sind die Links zu anderen Tutorials für andere Betriebssysteme :

Wenn Sie das Betriebssystem Ihres VPS ändern möchten, finden Sie hier einen Link zur Hilfedokumentation: Wie ändere ich das Betriebssystem meines VPS?

Bitte beachten Sie, dass dieses Tutorial nur auf einer VIERGE-Installation von Debian 9 + ISPConfig getestet wurde. Wenn Sie bereits Webseiten oder andere Dienste auf Ihrem VPS installiert haben, können wir nicht garantieren, dass das Tutorial effektiv ist und/oder dass alle Ihre anderen Dienste nach der Installation funktionsfähig sind.

Denken Sie daran, den SSH-Port in der Firewall Ihres VPS zu aktivieren und SSH Managed Services zu deaktivieren, damit Sie sich als Root an der SSH-Konsole anmelden können.

Zusammenfassung des Tutorials

Dies sind die Schritte, die in diesem Tutorial behandelt werden:

  1. Aktualisierung des Betriebssystems
  2. Installation von Gitlab
  3. Erstellen eines Let's Encrypt SSL-Zertifikats
  4. Einrichten eines Reverse Proxy auf Apache vor Gitlab.

1. Aktualisieren des Betriebssystems

Bevor Sie etwas installieren, empfiehlt es sich, die Paketliste und die Pakete selbst zu aktualisieren. Schreiben Sie auf Ihrer SSH-Konsole die folgenden Befehle:

apt-get update
apt-get upgrade -y
apt-get dist-upgrade -y

Wir können auch ISPConfig aktualisieren.

2. Installation von Gitlab

Zunächst installieren wir die von Gitlab benötigten Abhängigkeiten:

apt-get install -y curl openssh-server ca-certificates.

Als nächstes fügen wir das Gitlab-Repository zu Ihrem VPS hinzu :

curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ee/script.deb.sh | bash

Nun installieren wir Gitlab auf Port 6080 (zufällig ausgewählter Port) :

EXTERNAL_URL="http://vpsXXXXX.lws-hosting.com:6080" apt-get install gitlab-ee

Die Installation dauert mehrere Minuten, Sie können in der Zwischenzeit einen Tee trinken.

Tipp: Wenn Sie eine nicht sehr stabile Internetverbindung haben, können Sie screen einrichten, um sich bei einer ungeplanten Trennung der Verbindung wieder mit der Detachable-Konsole zu verbinden. Dokumentation zur Verwendung von screen.

Die Installation wird fehlschlagen. Das ist völlig normal. Das liegt daran, dass Gitlab versuchen wird, Änderungen am Kernel vorzunehmen. Diese Änderungen sind jedoch auf den VPS-Servern von LWS aufgrund der verwendeten Virtualisierungstechnologie nicht erlaubt. Um dies zu umgehen, müssen Sie die Kernelkonfigurationsdateien, die von Gitlab gepostet werden, "berühren" (den Befehl touch ausführen), um ihren Inhalt zu leeren und die Installation fortsetzen zu können:

⌨ Befehl
touch /opt/gitlab/embedded/etc/90-omnibus-gitlab-kernel.sem.conf touch /opt/gitlab/embedded/etc/90-omnibus-gitlab-kernel.shmall.conf touch /opt/gitlab/embedded/etc/90-omnibus-gitlab-kernel.shmmax.conf touch /opt/gitlab/embedded/etc/90-omnibus-gitlab-net.core.somaxconn.conf

Falls es noch weitere Konfigurationsdateien gibt, zögern Sie nicht, diese zu leeren. Führen Sie dann den folgenden Befehl aus, um die Gitlab-Konfigurationen neu zu generieren:

⌨ Befehl
gitlab-ctl reconfigure

Nun müssen Sie GitLab stoppen, das, wie Sie überprüfen konnten, überhaupt nicht funktioniert:

⌨ Befehl
gitlab-ctl stop

Das Problem liegt am Modul unicorn, das denselben Port wie ISPConfig verwendet. Wir werden daher seinen Port ändern, indem wir die Datei /etc/gitlab/gitlab.rb editieren:

⌨ Befehl
nano /etc/gitlab/gitlab.rb

und editieren Sie die folgende Zeile:

Code
# unicorn['port'] = 8080 unicorn['port'] = 8083

Vorher stand es als Kommentar und 8080 als Wert. Jetzt haben wir es dekomentiert und 8083 als Port gesetzt. Lassen Sie uns die Konfigurationsdateien neu erstellen :

⌨ Befehl
gitlab-ctl reconfigure.

Nun müssen wir Gitlab neu starten:

⌨ Befehl
gitlab-ctl restart

Tipp: Wenn unicorn sich weigert zu starten, gibt es Kinderprozesse, die noch nicht geschlossen wurden. Schließen Sie diese mit gitlab-ctl stop und versuchen Sie es dann erneut.

3. Erstellen Sie ein Let's Encrypt SSL-Zertifikat.

Um den Zugriff auf Gitlab zu sichern, werden wir ein Let's Encrypt SSL-Zertifikat erstellen, das dann auf dem Reverse Proxy installiert wird.

Hinweis: Wir werden das SSL-Zertifikat nicht auf Gitlab einrichten. Wir werden lediglich den Zugang auf seinem Reverse Proxy absichern. Tatsächlich wird auf Gitlab nur über den Reverse Proxy zugegriffen, wir können unserem VPS also zusätzlichen Rechenaufwand ersparen, indem wir Datenverkehr verschlüsseln, der den VPS nicht verlassen wird.

Dazu müssen wir zunächst git.example.com auf Ihren VPS verweisen. Danach verwenden wir certbot:

⌨ Befehl
certbot certonly --webroot -w /usr/local/ispconfig/interface/acme/ -d git.example.com

Hinweis: ISPConfig (dank seines vhost und seiner .conf für Apache) leitet Anfragen, die /.well-known/ enthalten, direkt an /usr/local/ispconfig/interface/acme/ weiter. Wir verwenden also eine webroot-Authentifizierung und nutzen den dafür vorgesehenen Ordner von ISPConfig. Dies wird dafür sorgen, dass wir bei Erneuerungen nicht mit ISPConfig kollidieren.

Wenn Sie zum ersten Mal ein Let's Encrypt SSL-Zertifikat auf Ihrem VPS erstellen, sollten Sie eine E-Mail-Adresse angeben und die Nutzungsbedingungen von Let's Encrypt akzeptieren.

4. Einrichten des Apache-Reverse-Proxys

Nun müssen wir den Reverse-Proxy mit Apache konfigurieren, der mit ISPConfig und den zugehörigen Websites zusammenleben wird. Wir werden daher eine neue Konfigurationsdatei erstellen :

⌨ Befehl
nano /etc/apache2/sites-available/gitlab.conf

und wir müssen den folgenden Inhalt einrichten:

Code

    ServerName git.example.com ServerAdmin root@git.exemple.com RewriteEngine On RewriteRule ^/??(.*) https://%{SERVER_NAME}/$1 [R,L]


    ServerName git.example.com ServerAdmin root@git.exemple.com ProxyRequests Off ProxyPreserveHost On ProxyVia Full Require all granted  ProxyPass http://127.0.0.1:6080/ ProxyPassReverse http://127.0.0.1:6080/ ErrorLog ${APACHE_LOG_DIR}/error.log LogLevel warn CustomLog ${APACHE_LOG_DIR}/access.log combined SSLEngine on SSLCertificateFile /etc/letsencrypt/live/git.example.com/fullchain.pem SSLCertificateKeyFile /etc/letsencrypt/live/git.example.com/privkey.pem SSLCertificateChainFile /etc/letsencrypt/live/git.example.com/chain.pem.

Und aktivieren wir diesen neuen vhost :

⌨ Befehl
ln -s /etc/apache2/sites-available/gitlab.conf /etc/apache2/sites-enabled/000-gitlab.conf

Aber bevor Sie Apache neu starten, müssen Sie die notwendigen Module aktivieren :

⌨ Befehl
a2enmod proxy a2enmod proxy_http.

Starten Sie nun Apache neu :

⌨ Befehl
systemctl restart apache2

Und das war's. Wenn Sie auf git.example.com zugreifen, werden Sie sehen, dass Gitlab bereit ist :

Installation von GitLab auf einem Debian 9 VPS-Server + ISPconfig

help.lws.net/a/1352
War dieser Artikel hilfreich?

Ja

Nicht

16 184 Mal gelesen

Vielen Dank! Stellen Sie gerne Fragen zu unserer Dokumentation, wenn Sie weitere Informationen wünschen, und helfen Sie uns, sie zu verbessern.

Ähnliche Artikel

Eine Frage zu diesem Artikel?

Stellen Sie sie dem LWS-Team und der Community. Die Antwort wird nach Moderation veröffentlicht.

Stellen Sie eine Frage an das LWS-Team und seine Gemeinschaft

DSGVO: Verantwortlicher: LWS-Ligne Web Services. Zweck: Moderation und öffentliche Veröffentlichung Ihrer Frage, gegebenenfalls Benachrichtigung über eine Antwort. Rechtsgrundlage: Einwilligung (Art. 6 Abs. 1 lit. a DSGVO). Speicherdauer der E-Mail-Adressen: 90 Tage nach der Benachrichtigung, höchstens 12 Monate ohne Antwort. Zur Ausübung Ihrer Rechte siehe den DSGVO-Abschnitt unserer AGB.