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:
-
Ein Ubuntu 18.04-Server mit einem Benutzer ohne Rootberechtigung und einer grundlegenden Firewall. Um dies einzurichten, folgen Sie unserenUbuntu 18.04 initial server setup guide.
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 vonpostfix
Internet 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 vonufw
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 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:
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:
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:
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:
Sie werden zum AbschnittProfileIhrer Einstellungen weitergeleitet:
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:
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:
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:
Klicken Sie auf die SchaltflächeUpdate username, um die Änderung vorzunehmen:
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:
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:
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:
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:
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:
Scrollen Sie nach unten und klicken Sie auf die SchaltflächeSave changes:
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:
Scrollen Sie nach unten und klicken Sie auf die SchaltflächeSave changes:
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:
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:
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.