So installieren und konfigurieren Sie GitLab unter Debian 9

Einführung

GitLab CE oder Community Edition ist eine Open-Source-Anwendung, die in erster Linie zum Hosten von Git-Repositorys verwendet wird und zusätzliche entwicklungsbezogene Funktionen wie die Fehlerverfolgung 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 wird beschrieben, wie GitLab auf einem Debian 9-Server installiert und konfiguriert wird.

Voraussetzungen

Für dieses Tutorial benötigen Sie:

Die veröffentlichten GitLab-Hardwareanforderungen empfehlen 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 zu get started with DNS on DigitalOcean. In diesem Tutorial wird der Domainname * example.com * zu Demonstrationszwecken verwendet.

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 leicht von Debians Standard-Paket-Repositorys installiert werden.

Da wir in dieser Sitzung zum ersten Mal "+ apt +" 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 + postfix + Installation * Internet Site *, 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 - GitLab installieren

Nachdem die Abhängigkeiten vorhanden sind, können wir GitLab selbst installieren. Dies ist ein unkomplizierter 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

Sehen Sie sich das heruntergeladene Skript an, um sicherzustellen, dass Sie mit den durchzuführenden Aktionen vertraut sind. Sie finden auch eine gehostete Version des Skripts hier:

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 mit + apt + installieren:

sudo apt install gitlab-ce

Dadurch werden die erforderlichen Komponenten auf Ihrem System installiert.

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 die in den Voraussetzungen aufgeführten Anweisungen befolgt haben, ist eine "+ ufw +" - Firewall aktiviert.

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 von Let’s Encrypt anzufordern und zu aktivieren, erlauben wir auch den HTTPS-Zugriff.

Wir können den Zugriff auf HTTP und HTTPS zulassen, indem wir das App-Profil "WWW Full" über unsere Firewall zulassen. Wenn Sie OpenSSH-Verkehr noch nicht aktiviert hatten, sollten Sie diesen Verkehr jetzt auch zulassen:

sudo ufw allow "WWW Full"
sudo ufw allow OpenSSH

Überprüfen Sie erneut den Status "+ ufw", indem Sie diesmal das Flag "+ verbose" anhängen. Für mindestens diese beiden Dienste sollte der Zugriff konfiguriert sein:

sudo ufw status verbose
OutputStatus: active
Logging: on (low)
Default: deny (incoming), allow (outgoing), disabled (routed)
New profiles: skip

To                         Action      From
--                         ------      ----
22/tcp (OpenSSH)           ALLOW IN    Anywhere
80,443/tcp (WWW Full)      ALLOW IN    Anywhere
22/tcp (OpenSSH (v6))      ALLOW IN    Anywhere (v6)
80,443/tcp (WWW Full (v6)) ALLOW IN    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

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

Ganz oben befindet sich die Konfigurationszeile "+ external_url ". Aktualisieren Sie es entsprechend Ihrer Domain. Ändern Sie " http " in " https +", damit GitLab Benutzer automatisch zu der Site umleitet, 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 'http://'

Suchen Sie als Nächstes nach der Einstellung "+ letsencrypt [" 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'] = ['']

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

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://

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

Geben Sie an der Eingabeaufforderung für das Kennwort ein sicheres Kennwort für das Administratorkonto ein und bestätigen Sie es. Klicken Sie auf die Schaltfläche * Passwort ändern *, wenn Sie fertig sind.

Sie werden zur herkömmlichen GitLab-Anmeldeseite weitergeleitet:

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äche * Anmelden *. Sie werden in der Anwendung angemeldet und zu einer Zielseite weitergeleitet, auf der Sie aufgefordert werden, Projekte hinzuzufügen:

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ü * Einstellungen *:

Sie werden zum Abschnitt * Profil * Ihrer Einstellungen weitergeleitet:

Passen Sie den * Namen * und die * E-Mail-Adresse * von “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 auf die Schaltfläche * Profileinstellungen aktualisieren * unten, wenn Sie fertig sind:

image: https: //assets.digitalocean.com/articles/gitlab_install_1604/update_profile_settings_button2.png [Schaltfläche "GitLab-Profileinstellungen aktualisieren"]

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 den Eintrag * Account *:

image: https: //assets.digitalocean.com/articles/gitlab_install_1604/account_menu_item2.png [GitLab-Konto-Menüpunkt]

Hier finden Sie Ihr privates API-Token oder können die Zwei-Faktor-Authentifizierung konfigurieren. Die Funktionalität, die uns derzeit interessiert, ist jedoch der Abschnitt * Benutzernamen ändern *.

Standardmäßig erhält das erste Administratorkonto den Namen * root *. 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 Sie * root * durch Ihren bevorzugten Benutzernamen:

image: https: //assets.digitalocean.com/articles/gitlab_install_1604/change_username2.png [GitLab-Abschnitt zum Ändern des Benutzernamens]

Klicken Sie auf die Schaltfläche * Benutzername aktualisieren *, um die Änderung vorzunehmen:

image: https://assets.digitalocean.com/articles/gitlab_install_1604/update_username_button2.png [GitLab-Schaltfläche zum Aktualisieren des Benutzernamens]

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 Sie bereits ein SSH-Schlüsselpaar auf Ihrem * lokalen Computer * erstellt haben, 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 * Einstellungen * 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 Ihren * Einstellungen * in der GitLab-Weboberfläche zurück.

Klicken Sie im linken Menü auf den Eintrag * SSH Keys *:

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

image: https: //assets.digitalocean.com/articles/gitlab_install_1604/add_ssh_key2.png [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 - 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.

Um zu beginnen, gehen Sie in den Verwaltungsbereich, indem Sie in der Hauptmenüleiste oben auf der Seite auf das Symbol * Schraubenschlüssel * klicken:

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

Bild: https://assets.digitalocean.com/articles/gitlab_install_1604/admin_settings_button2.png [GitLab-Schaltfläche für administrative Einstellungen]

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), navigieren Sie zum Abschnitt * Anmeldebeschränkungen *.

Deaktivieren Sie das Kontrollkästchen * Anmeldung aktiviert *:

Scrollen Sie nach unten und klicken Sie auf die Schaltfläche * Änderungen speichern *:

image: https://assets.digitalocean.com/articles/gitlab_install_1604/new_save_changes_button.png [GitLab-Schaltfläche zum Speichern von Einstellungen]

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.

Aktivieren Sie im Abschnitt * Anmeldebeschränkungen * das Kontrollkästchen * Bestätigungs-E-Mail bei Anmeldung senden *, damit sich Benutzer erst anmelden können, nachdem sie ihre E-Mail-Adresse bestätigt haben.

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

Scrollen Sie nach unten und klicken Sie auf die Schaltfläche * Änderungen speichern *:

image: https://assets.digitalocean.com/articles/gitlab_install_1604/new_save_changes_button.png [GitLab-Schaltfläche zum Speichern von Einstellungen]

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 deren Zugriff auf das Erstellen neuer Projekte einschränken möchten, können Sie dies im Abschnitt * Konto- und Limiteinstellungen * tun.

Im Inneren können Sie das Limit für * Standardprojekte * auf 0 setzen, um zu verhindern, dass neue Benutzer Projekte erstellen:

image: https: //assets.digitalocean.com/articles/gitlab_install_1604/set_projects_to_zero.png [GitLab setzt Projekte auf Null]

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äche * Änderungen speichern *:

image: https://assets.digitalocean.com/articles/gitlab_install_1604/new_save_changes_button.png [GitLab-Schaltfläche zum Speichern von Einstellungen]

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, um die Let’s Encrypt-Zertifikate alle vier Tage nach Mitternacht zu erneuern, wobei die genaue Minute auf Ihrer + external_url + basiert. 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 eine zusätzliche Einstellung zu "+ /etc/gitlab/gitlab.rb +" 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.