So installieren und konfigurieren Sie GitLab unter Ubuntu 18.04

Einführung

GitLab CE oder Community Edition ist eine Open-Source-Anwendung, die hauptsächlich zum Hosten von Git-Repositorys verwendet wird und zusätzliche entwicklungsbezogene Funktionen wie die Problemverfolgung bietet. Es kann mithilfe Ihrer eigenen Infrastruktur gehostet werden und bietet Flexibilität bei der Bereitstellung als interner Repository-Speicher für Ihr Entwicklungsteam, als öffentliche Schnittstelle zu Benutzern oder als Möglichkeit für Mitwirkende, ihre eigenen Projekte zu hosten.

Das GitLab-Projekt macht es relativ einfach, eine GitLab-Instanz mit einem einfachen Installationsmechanismus auf Ihrer eigenen Hardware einzurichten. In diesem Handbuch erfahren Sie, wie Sie GitLab auf einem Ubuntu 18.04-Server installieren und konfigurieren.

Voraussetzungen

Für dieses Tutorial benötigen Sie:

Diepublished GitLab hardware requirementsempfehlen die Verwendung eines Servers mit:

  • 2 Adern

  • 8 GB RAM

Obwohl Sie möglicherweise damit auskommen, RAM durch etwas Auslagerungsspeicher zu ersetzen, wird dies nicht empfohlen. Für diesen Leitfaden gehen wir davon aus, dass Sie mindestens über die oben genannten Ressourcen verfügen.

  • Ein Domainname, der auf Ihren Server verweist. Weitere Informationen finden Sie in unserer Dokumentation zuget started with DNS on DigitalOcean. In diesem Tutorial wird der Domainnameexample.com verwendet.

[[Schritt-1 - Installieren der Abhängigkeiten]] == Schritt 1 - Installieren der Abhängigkeiten

Bevor wir GitLab selbst installieren können, ist es wichtig, einen Teil der Software zu installieren, die während der Installation und auf kontinuierlicher Basis verwendet wird. Glücklicherweise kann die gesamte erforderliche Software problemlos über die Standard-Paket-Repositorys von Ubuntu installiert werden.

Da wir in dieser Sitzung zum ersten Malapt verwenden, können wir den lokalen Paketindex aktualisieren und dann die Abhängigkeiten installieren, indem wir Folgendes eingeben:

sudo apt update
sudo apt install ca-certificates curl openssh-server postfix

Möglicherweise ist ein Teil dieser Software bereits installiert. Wählen Sie für die Installation vonpostfixInternet Site aus, wenn Sie dazu aufgefordert werden. Geben Sie im nächsten Bildschirm den Domänennamen Ihres Servers ein, um zu konfigurieren, wie das System E-Mails sendet.

[[Schritt-2 - Installation von Gitlab]] == Schritt 2 - Installation von GitLab

Nachdem die Abhängigkeiten vorhanden sind, können wir GitLab selbst installieren. Dies ist ein einfacher Prozess, bei dem ein Installationsskript verwendet wird, um Ihr System mit den GitLab-Repositorys zu konfigurieren.

Wechseln Sie in das Verzeichnis/tmp und laden Sie das Installationsskript herunter:

cd /tmp
curl -LO https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh

Schauen Sie sich das heruntergeladene Skript an, um sicherzustellen, dass Sie mit den durchzuführenden Aktionen vertraut sind. Sie können auch eine gehostete Version des Skriptshere finden:

less /tmp/script.deb.sh

Wenn Sie mit der Sicherheit des Skripts zufrieden sind, führen Sie das Installationsprogramm aus:

sudo bash /tmp/script.deb.sh

Das Skript richtet Ihren Server für die Verwendung der von GitLab verwalteten Repositorys ein. Auf diese Weise können Sie GitLab mit denselben Paketverwaltungstools verwalten, die Sie auch für Ihre anderen Systempakete verwenden. Sobald dies abgeschlossen ist, können Sie die eigentliche GitLab-Anwendung mitapt installieren:

sudo apt install gitlab-ce

Dadurch werden die erforderlichen Komponenten auf Ihrem System installiert.

[[Schritt 3 - Anpassen der Firewall-Regeln] == Schritt 3 - Anpassen der Firewall-Regeln

Bevor Sie GitLab konfigurieren, müssen Sie sicherstellen, dass Ihre Firewall-Regeln ausreichend sind, um Webdatenverkehr zuzulassen. Wenn Sie den in den Voraussetzungen verlinkten Anleitungen gefolgt sind, ist die Firewall vonufwaktiviert.

Zeigen Sie den aktuellen Status Ihrer aktiven Firewall an, indem Sie Folgendes eingeben:

sudo ufw status
OutputStatus: active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere
OpenSSH (v6)               ALLOW       Anywhere (v6)

Wie Sie sehen, lassen die aktuellen Regeln SSH-Datenverkehr zu, der Zugriff auf andere Dienste ist jedoch beschränkt. Da es sich bei GitLab um eine Webanwendung handelt, sollten wir den HTTP-Zugriff zulassen. Da wir die Möglichkeit von GitLab nutzen werden, ein kostenloses TLS / SSL-Zertifikat vonLet’s Encryptanzufordern und zu aktivieren, erlauben wir auch den HTTPS-Zugriff.

Das Protokoll zur Portzuordnung für HTTP und HTTPS ist in der Datei/etc/services verfügbar, sodass wir diesen Datenverkehr nach Namen zulassen können. Wenn Sie OpenSSH-Verkehr noch nicht aktiviert hatten, sollten Sie diesen Verkehr jetzt auch zulassen:

sudo ufw allow http
sudo ufw allow https
sudo ufw allow OpenSSH

Überprüfen Sie dieufw status erneut. Sie sollten sehen, dass der Zugriff auf mindestens diese beiden Dienste konfiguriert ist:

sudo ufw status
OutputStatus: active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere
80/tcp                     ALLOW       Anywhere
443/tcp                    ALLOW       Anywhere
OpenSSH (v6)               ALLOW       Anywhere (v6)
80/tcp (v6)                ALLOW       Anywhere (v6)
443/tcp (v6)               ALLOW       Anywhere (v6)

Die obige Ausgabe zeigt an, dass auf die GitLab-Weboberfläche zugegriffen werden kann, sobald die Anwendung konfiguriert wurde.

[[Schritt 4 - Bearbeiten der Gitlab-Konfigurationsdatei]] == Schritt 4 - Bearbeiten der GitLab-Konfigurationsdatei

Bevor Sie die Anwendung verwenden können, müssen Sie die Konfigurationsdatei aktualisieren und einen Rekonfigurationsbefehl ausführen. Öffnen Sie zunächst die Konfigurationsdatei von Gitlab:

sudo nano /etc/gitlab/gitlab.rb

Oben befindet sich die Konfigurationszeile vonexternal_url. Aktualisieren Sie es entsprechend Ihrer Domain. Ändern Siehttp inhttps, damit GitLab Benutzer automatisch zu der Site weiterleitet, die durch das Let's Encrypt-Zertifikat geschützt ist:

/etc/gitlab/gitlab.rb

##! For more details on configuring external_url see:
##! https://docs.gitlab.com/omnibus/settings/configuration.html#configuring-the-external-url-for-gitlab
external_url 'https://example.com'

Suchen Sie als Nächstes nach der Einstellungletsencrypt['contact_emails']. Diese Einstellung definiert eine Liste von E-Mail-Adressen, die das Let's Encrypt-Projekt verwenden kann, um bei Problemen mit Ihrer Domain Kontakt mit Ihnen aufzunehmen. Es ist eine gute Idee, das Kommentarfeld zu entfernen und auszufüllen, damit Sie über alle Probleme informiert werden:

/etc/gitlab/gitlab.rb

letsencrypt['contact_emails'] = ['[email protected]']

Speichern und schließen Sie die Datei. Führen Sie den folgenden Befehl aus, um Gitlab neu zu konfigurieren:

sudo gitlab-ctl reconfigure

Dadurch wird GitLab mit den Informationen initialisiert, die es über Ihren Server finden kann. Dies ist ein vollständig automatisierter Prozess, sodass Sie keine Eingabeaufforderungen beantworten müssen. Der Vorgang konfiguriert auch ein Let’s Encrypt-Zertifikat für Ihre Domain.

[[Schritt 5 - Durchführen der Erstkonfiguration über die Webschnittstelle]] == Schritt 5 - Durchführen der Erstkonfiguration über die Webschnittstelle

Wenn GitLab ausgeführt wird und der Zugriff gestattet ist, können wir einige Erstkonfigurationen der Anwendung über die Weboberfläche vornehmen.

Zum ersten Mal anmelden

Besuchen Sie den Domainnamen Ihres GitLab-Servers in Ihrem Webbrowser:

https://example.com

Bei Ihrem ersten Besuch sollten Sie aufgefordert werden, ein Kennwort für das Administratorkonto festzulegen:

GitLab initial password set prompt

Geben Sie bei der ersten Kennwortabfrage ein sicheres Kennwort für das Administratorkonto ein und bestätigen Sie es. Klicken Sie auf die SchaltflächeChange your password, wenn Sie fertig sind.

Sie werden zur herkömmlichen GitLab-Anmeldeseite weitergeleitet:

GitLab first sign in prompt

Hier können Sie sich mit dem gerade eingestellten Passwort einloggen. Die Anmeldeinformationen sind:

  • Benutzername:root

  • Passwort: [das von Ihnen festgelegte Passwort]

Geben Sie diese Werte in die Felder für vorhandene Benutzer ein und klicken Sie auf die SchaltflächeSign in. Sie werden in der Anwendung angemeldet und zu einer Zielseite weitergeleitet, auf der Sie aufgefordert werden, Projekte hinzuzufügen:

GitLab initial login landing page

Sie können jetzt einige einfache Änderungen vornehmen, um GitLab so einzurichten, wie Sie es möchten.

Anpassen Ihrer Profileinstellungen

Eines der ersten Dinge, die Sie nach einer Neuinstallation tun sollten, ist, Ihr Profil in eine bessere Form zu bringen. GitLab wählt einige sinnvolle Standardeinstellungen aus, die jedoch in der Regel nicht mehr geeignet sind, wenn Sie mit der Verwendung der Software beginnen.

Klicken Sie auf das Benutzersymbol in der oberen rechten Ecke der Benutzeroberfläche, um die erforderlichen Änderungen vorzunehmen. Wählen Sie im angezeigten Dropdown-MenüSettings:

GitLab profile settings button

Sie werden zum AbschnittProfileIhrer Einstellungen weitergeleitet:

GitLab profile settings page

Passen Sie die AdresseName undEmailvon „Administrator“ und „[email protected]“ genauer an. Der von Ihnen ausgewählte Name wird anderen Benutzern angezeigt, während die E-Mail für die Standardavatarerkennung, Benachrichtigungen, Git-Aktionen über die Benutzeroberfläche usw. verwendet wird.

Klicken Sie unten auf die SchaltflächeUpdate Profile settings, wenn Sie fertig sind:

GitLab update profile settings button

Eine Bestätigungs-E-Mail wird an die von Ihnen angegebene Adresse gesendet. Befolgen Sie die Anweisungen in der E-Mail, um Ihr Konto zu bestätigen, damit Sie es mit GitLab verwenden können.

Ändern Ihres Kontonamens

Klicken Sie anschließend in der linken Menüleiste auf das ElementAccount:

GitLab account menu item

Hier finden Sie Ihr privates API-Token oder können die Zwei-Faktor-Authentifizierung konfigurieren. Die Funktionalität, an der wir derzeit interessiert sind, ist jedoch der AbschnittChange username.

Standardmäßig erhält das erste Administratorkonto den Namenroot. Da dies ein bekannter Kontoname ist, ist es sicherer, diesen in einen anderen Namen zu ändern. Sie haben weiterhin Administratorrechte. Das einzige, was sich ändern wird, ist der Name. Ersetzen Sieroot durch Ihren bevorzugten Benutzernamen:

GitLab change username section

Klicken Sie auf die SchaltflächeUpdate username, um die Änderung vorzunehmen:

GitLab update username button

Denken Sie daran, Ihren neuen Benutzernamen zu verwenden, wenn Sie sich das nächste Mal bei GitLab anmelden.

Hinzufügen eines SSH-Schlüssels zu Ihrem Konto

In den meisten Fällen möchten Sie SSH-Schlüssel mit Git verwenden, um mit Ihren GitLab-Projekten zu interagieren. Dazu müssen Sie Ihren öffentlichen SSH-Schlüssel zu Ihrem GitLab-Konto hinzufügen.

Wenn auf Ihrenlocal computer bereits ein SSH-Schlüsselpaar erstellt wurde, können Sie den öffentlichen Schlüssel normalerweise anzeigen, indem Sie Folgendes eingeben:

cat ~/.ssh/id_rsa.pub

Sie sollten ein großes Stück Text sehen, wie folgt:

Outputssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDMuyMtMl6aWwqBCvQx7YXvZd7bCFVDsyln3yh5/8Pu23LW88VXfJgsBvhZZ9W0rPBGYyzE/TDzwwITvVQcKrwQrvQlYxTVbqZQDlmsC41HnwDfGFXg+QouZemQ2YgMeHfBzy+w26/gg480nC2PPNd0OG79+e7gFVrTL79JA/MyePBugvYqOAbl30h7M1a7EHP3IV5DQUQg4YUq49v4d3AvM0aia4EUowJs0P/j83nsZt8yiE2JEYR03kDgT/qziPK7LnVFqpFDSPC3MR3b8B354E9Af4C/JHgvglv2tsxOyvKupyZonbyr68CqSorO2rAwY/jWFEiArIaVuDiR9YM5 sammy@mydesktop

Kopieren Sie diesen Text und kehren Sie zur Seite "Profileinstellungen" in der GitLab-Weboberfläche zurück.

Wenn Sie stattdessen eine Meldung erhalten, die so aussieht, ist auf Ihrem Computer noch kein SSH-Schlüsselpaar konfiguriert:

Outputcat: /home/sammy/.ssh/id_rsa.pub: No such file or directory

In diesem Fall können Sie ein SSH-Schlüsselpaar erstellen, indem Sie Folgendes eingeben:

ssh-keygen

Akzeptieren Sie die Standardeinstellungen und geben Sie optional ein Kennwort ein, um den Schlüssel lokal zu sichern:

OutputGenerating public/private rsa key pair.
Enter file in which to save the key (/home/sammy/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/sammy/.ssh/id_rsa.
Your public key has been saved in /home/sammy/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:I8v5/M5xOicZRZq/XRcSBNxTQV2BZszjlWaIHi5chc0 [email protected]
The key's randomart image is:
+---[RSA 2048]----+
|          ..%o==B|
|           *.E =.|
|        . ++= B  |
|         ooo.o . |
|      . S .o  . .|
|     . + .. .   o|
|      +   .o.o ..|
|       o .++o .  |
|        oo=+     |
+----[SHA256]-----+

Sobald Sie dies haben, können Sie Ihren öffentlichen Schlüssel wie oben beschrieben anzeigen, indem Sie Folgendes eingeben:

cat ~/.ssh/id_rsa.pub
Outputssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDMuyMtMl6aWwqBCvQx7YXvZd7bCFVDsyln3yh5/8Pu23LW88VXfJgsBvhZZ9W0rPBGYyzE/TDzwwITvVQcKrwQrvQlYxTVbqZQDlmsC41HnwDfGFXg+QouZemQ2YgMeHfBzy+w26/gg480nC2PPNd0OG79+e7gFVrTL79JA/MyePBugvYqOAbl30h7M1a7EHP3IV5DQUQg4YUq49v4d3AvM0aia4EUowJs0P/j83nsZt8yiE2JEYR03kDgT/qziPK7LnVFqpFDSPC3MR3b8B354E9Af4C/JHgvglv2tsxOyvKupyZonbyr68CqSorO2rAwY/jWFEiArIaVuDiR9YM5 sammy@mydesktop

Kopieren Sie den angezeigten Textblock und kehren Sie zu Ihrem ProfilSettings in der GitLab-Weboberfläche zurück.

Klicken Sie im linken Menü auf das ElementSSH Keys:

GitLab SSH Keys menu item

Fügen Sie in den bereitgestellten Bereich den öffentlichen Schlüssel ein, den Sie von Ihrem lokalen Computer kopiert haben. Geben Sie ihm einen beschreibenden Titel und klicken Sie auf die SchaltflächeAdd key:

GitLab add SSH Key

Sie sollten nun in der Lage sein, Ihre GitLab-Projekte und -Repositorys von Ihrem lokalen Computer aus zu verwalten, ohne Ihre GitLab-Kontoanmeldeinformationen angeben zu müssen.

[[Schritt-6 - Beschränken oder Deaktivieren von öffentlichen Anmeldungen - optional]] == Schritt 6 - Einschränken oder Deaktivieren von öffentlichen Anmeldungen (optional)

Möglicherweise haben Sie bemerkt, dass sich jeder beim Aufrufen der Zielseite Ihrer GitLab-Instanz für ein Konto anmelden kann. Dies ist möglicherweise genau das, was Sie möchten, wenn Sie ein öffentliches Projekt hosten möchten. Oft sind jedoch restriktivere Einstellungen wünschenswert.

Gehen Sie zunächst zum Verwaltungsbereich, indem Sie in der Hauptmenüleiste oben auf der Seite aufwrench icon klicken:

GitLab administrative area button

Auf der folgenden Seite sehen Sie eine Übersicht über Ihre GitLab-Instanz als Ganzes. Um die Einstellungen anzupassen, klicken Sie unten im linken Menü auf das ElementSettings:

GitLab administrative settings button

Sie werden zu den globalen Einstellungen für Ihre GitLab-Instanz weitergeleitet. Hier können Sie eine Reihe von Einstellungen vornehmen, die sich darauf auswirken, ob sich neue Benutzer anmelden können, und deren Zugriffsebene.

Anmeldungen deaktivieren

Wenn Sie Anmeldungen vollständig deaktivieren möchten (Sie können weiterhin manuell Konten für neue Benutzer erstellen), scrollen Sie zum AbschnittSign-up Restrictions.

Deaktivieren Sie das KontrollkästchenSign-up enabled:

GitLab deselect sign-ups enabled

Scrollen Sie nach unten und klicken Sie auf die SchaltflächeSave changes:

GitLab save settings button

Der Anmeldebereich sollte jetzt von der GitLab-Startseite entfernt werden.

Einschränken von Anmeldungen nach Domain

Wenn Sie GitLab als Teil einer Organisation verwenden, die einer Domain zugeordnete E-Mail-Adressen bereitstellt, können Sie Anmeldungen nach Domain einschränken, anstatt sie vollständig zu deaktivieren.

Wählen Sie im AbschnittSign-up Restrictions das FeldSend confirmation email on sign-up aus, in dem sich Benutzer erst anmelden können, nachdem sie ihre E-Mail bestätigt haben.

Fügen Sie als Nächstes Ihre Domain oder Domains zum FeldWhitelisted domains for sign-ups hinzu, eine Domain pro Zeile. Sie können das Sternchen "*" verwenden, um Platzhalterdomänen anzugeben:

GitLab restrict sign-ups by domain

Scrollen Sie nach unten und klicken Sie auf die SchaltflächeSave changes:

GitLab save settings button

Der Anmeldebereich sollte jetzt von der GitLab-Startseite entfernt werden.

Einschränkung der Projekterstellung

Standardmäßig können neue Benutzer bis zu 10 Projekte erstellen. Wenn Sie neuen Benutzern von außen Sichtbarkeit und Teilnahme gewähren möchten, aber ihren Zugriff auf das Erstellen neuer Projekte einschränken möchten, können Sie dies im AbschnittAccount and Limit Settingstun.

Im Inneren können SieDefault projects limit auf 0 ändern, um neue Benutzer vollständig daran zu hindern, Projekte zu erstellen:

GitLab set projects to zero

Neue Benutzer können weiterhin manuell zu Projekten hinzugefügt werden und haben Zugriff auf interne oder öffentliche Projekte, die von anderen Benutzern erstellt wurden.

Scrollen Sie nach unten und klicken Sie auf die SchaltflächeSave changes:

GitLab save settings button

Neue Benutzer können nun Konten erstellen, aber keine Projekte erstellen.

Erneuern wir verschlüsseln Zertifikate

Standardmäßig ist in GitLab eine geplante Aufgabe eingerichtet, mit der Let's Encrypt-Zertifikate jeden vierten Tag nach Mitternacht erneuert werden sollen. Die genaue Minute basiert auf Ihrenexternal_url. Sie können diese Einstellungen in der Datei/etc/gitlab/gitlab.rbändern. Wenn Sie beispielsweise alle sieben Tage um 12:30 Uhr verlängern möchten, können Sie dies wie folgt konfigurieren:

/etc/gitlab/gitlab.rb

letsencrypt['auto_renew_hour'] = "12"
letsencrypt['auto_renew_minute'] = "30"
letsencrypt['auto_renew_day_of_month'] = "*/7"

Sie können die automatische Verlängerung auch deaktivieren, indem Sie/etc/gitlab/gitlab.rb eine zusätzliche Einstellung hinzufügen:

/etc/gitlab/gitlab.rb

letsencrypt['auto_renew'] = false

Wenn die automatische Verlängerung aktiviert ist, müssen Sie sich keine Gedanken mehr über Betriebsunterbrechungen machen.

Fazit

Sie sollten jetzt eine funktionierende GitLab-Instanz auf Ihrem eigenen Server haben. Sie können anfangen, neue Projekte zu importieren oder zu erstellen und die entsprechende Zugriffsebene für Ihr Team konfigurieren. GitLab fügt regelmäßig Funktionen hinzu und nimmt Aktualisierungen für seine Plattform vor. Überprüfen Sie daher unbedingt die Homepage des Projekts, um über Verbesserungen und wichtige Hinweise auf dem Laufenden zu bleiben.