Installation und Konfiguration von GitLab CE auf CentOS 7
GitLab ist ein Open-Source-Repository-Manager, der auf Rails basiert, die von GitLab Inc. entwickelt wurden. Es ist ein webbasierter Git-Repository-Manager, der es Ihrem Team ermöglicht, bei der Programmierung, dem Testen und der Bereitstellung von Anwendungen zusammenzuarbeiten. GitLab bietet mehrere Funktionen, darunter Wikis, Problemverfolgung, Codeüberprüfungen und Aktivitäts-Feeds.
GitLab Inc. bietet 4 Produkte an:
- Gitlab CE (Community Edition) – selbst gehostet und kostenlos; Unterstützung durch das Community-Forum.
- Gitlab EE (Enterprise Edition) – selbst gehostet und bezahlt; mit zusätzlichen Funktionen ausgestattet.
- GitLab.com – SaaS und kostenlos.
- GitLab.io – Private GitLab-Instanz verwaltet von GitLab Inc.
In diesem Tutorial wird die schrittweise Installation von GitLab CE (Community Edition) auf CentOS 7 Server mit 4GB RAM erläutert. In einem unserer vorherigen Tutorials haben wir die GitLab-Installation manuell durchgeführt. Aber hier werden wir das von GitLab bereitgestellte Paket „omnibus“ für unsere Installation verwenden.
Was wir tun werden
- Pakete installieren
- GitLab installieren
- GitLab-URL konfigurieren
- Generieren Sie SSL Let’s encrypt und DHPARAM-Zertifikat.
- Nginx HTTPS für GitLab aktivieren
- Konfigurieren Sie fIrewalld
- GitLab-Installation durchführen
- Prüfung
Voraussetzungen
- CentOS 7 Server – 64bit 64bit
- Min. RAM 2GB
- Root-Rechte
Schritt 1 – Pakete installieren
In diesem Schritt werden wir einige Pakete herunterladen/installieren, die für die Installation von GitLab benötigt werden. Wir werden curl verwenden, um den Repository-Installer, policycoreutils für SELinux-Manager, OpenSSH und Postfix als lokalen SMTP-Server herunterzuladen.
Installieren Sie alle diese Pakete mit dem folgenden yum-Befehl.
yum -y install curl policycoreutils openssh-server openssh-clients postfix
Danach starten Sie die Dienste ssh und postfix.
systemctl start sshd systemctl start postfix
Aktivieren Sie nun, dass sie beim Booten automatisch ausgeführt werden.
systemctl enable sshd systemctl enable postfix
Alle für die Installation von GitLab benötigten Pakete sind nun auf dem Server installiert.
Schritt 2 – GitLab installieren
GitLab bietet ein Installationsprogramm zum Hinzufügen des GitLab CE-Repositorys. Laden Sie das Installationsprogramm mit Curl herunter und führen Sie das Skript (wie unten gezeigt) aus, um ein neues GitLab CE-Repository hinzuzufügen.
curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash
Das GitLab CE-Repository wurde dem System hinzugefügt.
Installieren Sie nun GitLab mit dem folgenden yum-Befehl.
yum -y install gitlab-ce
Wenn die Installation abgeschlossen ist, erhalten Sie das Ergebnis wie unten gezeigt.
Damit ist GitLab CE nun auf dem CentOS 7 Server installiert.
Schritt 3 – GitLab URL konfigurieren
Für dieses Tutorial werden wir einen Domainnamen für GitLab verwenden. Insbesondere werden wir den Domainnamen ‚gitlab.hakase-labs.co.‘ verwenden.
Gehen Sie in das GitLab-Konfigurationsverzeichnis ‚/etc/gitlab‘ und bearbeiten Sie dann die Konfigurationsdatei’gitlab.rb‘ mit dem vim-Editor.
cd /etc/gitlab/ vim gitlab.rb
Ändere die external_url Zeile mit dem Domainnamen‘gitlab.hakase-labs.co‚.
external_url 'http://gitlab.hakase-labs.co'
Speichern Sie die Änderungen und verlassen Sie vim.
Schritt 4 – Generieren von SSL Let’s encrypt und DHPARAM-Zertifikat
Für die grundlegende Sicherheitsebene werden wir das SSL für unsere GitLab-Website verwenden. Wir werden ein kostenloses SSL-Zertifikat von Letsencrypt verwenden und ein DHPARAM-Zertifikat generieren, um eine zusätzliche Sicherheitsschicht hinzuzufügen.
Um das Letsencrypt-Zertifikat zu generieren, müssen wir das letsencrypt Kommandozeilen-Tool installieren, das im Repository verfügbar ist.
Installieren Sie das Letsencrypt-Tool auf CentOS 7 mit dem Befehl yum unten.
yum -y install letsencrypt
Nachdem die Installation abgeschlossen ist, generieren Sie ein neues SSL-Zertifikat letsencrypt mit dem folgenden Befehl.
letsencrypt certonly --standalone -d gitlab.hakase-labs.co
Hinweis: Stellen Sie bei der Generierung von SSL-Letsencrypt sicher, dass Ihr HTTP- und HTTPS-Port nicht durch die Firewall blockiert wird.
Geben Sie Ihre E-Mail-Adresse für die Verlängerung der Benachrichtigung ein, geben Sie dann ‚A‘ für die Allgemeinen Geschäftsbedingungen von Letsencrypt ein, und geben Sie schließlich ‚N‘ ein und drücken Sie erneut die Eingabetaste.
Und wenn Sie das Ergebnis wie unten gezeigt sehen, bedeutet dies, dass Ihr Zertifikat für den Domainnamen generiert und im Verzeichnis’/etc/letsencrypt/live‘ gespeichert wurde.
Erstellen Sie anschließend ein neues Verzeichnis’ssl‘ unter dem GitLab-Konfigurationsverzeichnis’/etc/gitlab/‘.
mkdir -p /etc/gitlab/ssl/
Erzeugen Sie nun die DHPARAM-Zertifikatspem-Datei mit OpenSSL. Das größere Stück ist sicherer.
sudo openssl dhparam -out /etc/gitlab/ssl/dhparams.pem 2048
Und nachdem das DHPARAM-Zertifikat generiert wurde, ändern Sie die Berechtigung der Zertifikatsdatei auf 600.
chmod 600 /etc/gitlab/ssl/*
So wurde das SSL Letsencrypt und DHPARAM Zertifikat für die GitLab Installation generiert.
Schritt 5 – Nginx HTTPS für GitLab aktivieren
Zu diesem Zeitpunkt haben wir bereits kostenlose SSL-Zertifikatsdateien von Letsencrypt und DHPARAM-Zertifikat, die mit dem OpenSSL-Befehl generiert werden. Und in diesem Schritt werden wir HTTPS für die GitLab-Site aktivieren. Wir werden HTTPS aktivieren und HTTP für die HTTPS-Verbindung erzwingen.
Gehen Sie zunächst in das Konfigurationsverzeichnis von GitLab und bearbeiten Sie die Konfigurationsdatei’gitlab.rb‘.
cd /etc/gitlab/ vim gitlab.rb
Und ändern Sie HTTP zu HTTPS auf der external_url Zeile.
external_url 'https://gitlab.hakase-labs.co'
Fügen Sie dann die folgende Konfiguration unter der Leitungskonfiguration „external_url“ ein.
nginx['redirect_http_to_https'] = true nginx['ssl_certificate'] = "/etc/letsencrypt/live/gitlab.hakase-labs.co/fullchain.pem" nginx['ssl_certificate_key'] = "/etc/letsencrypt/live/gitlab.hakase-labs.co/privkey.pem" nginx['ssl_dhparam'] = "/etc/gitlab/ssl/dhparams.pem"
Speichern Sie die Änderungen und verlassen Sie vim.
Zum Schluss wenden Sie die GitLab-Konfiguration mit dem folgenden Befehl an.
gitlab-ctl reconfigure
Und wenn alles abgeschlossen ist, sollten Sie das Ergebnis wie unten gezeigt erhalten.
Schritt 6 – Firewalldaten konfigurieren
In diesem Tutorial werden wir GitLab unter der Firewalld-Firewall ausführen. Stellen Sie also sicher, dass es auf dem System installiert ist. Wenn Sie das Paket nicht haben, können Sie es mit dem folgenden Befehl installieren.
yum -y install firewalld
Starten Sie die Firewall und aktivieren Sie sie so, dass sie beim Booten automatisch mit systemctl-Befehlen läuft, wie unten gezeigt.
systemctl start firewalld systemctl enable firewalld
Als nächstes öffnen Sie neue Ports für unsere Dienste. Wir werden SSH-, HTTP- und HTTPS-Ports für unsere GitLab-Konfiguration öffnen. Führen Sie untenstehende Firewall-cmd-Befehle aus, um die Ports zu öffnen.
firewall-cmd --permanent --add-service ssh firewall-cmd --permanent --add-service http firewall-cmd --permanent --add-service https
Laden Sie nun die Firewall neu und überprüfen Sie die Konfiguration der Firewall. Stellen Sie sicher, dass SSH, HTTP und HTTPS auf der Liste stehen.
firewall-cmd --reload firewall-cmd --list-all
Damit ist die Firewalld-Konfiguration für GitLab abgeschlossen.
Schritt 7 – Installation durchführen
GitLab wurde also im System installiert und läuft unter der Firewalld-Firewall. In diesem Schritt werden wir nach der Installation von GitLab auf dem Server einige kurze Einstellungen vornehmen.
GitLab Root-Passwort zurücksetzen
Öffnen Sie Ihren Webbrowser und geben Sie die Gitlab-URL’gitlab.hakase-labs.co‘ ein. Sie werden zur HTTPS-Verbindung weitergeleitet. Ändern Sie das Root-Passwort mit Ihrem eigenen Passwort und klicken Sie zur Bestätigung auf die Schaltfläche „Passwort ändern“.
Jetzt können Sie sich mit dem Standardbenutzer’root‘ und Ihrem eigenen Passwort in das GitLab Dashboard einloggen.
Profil und Benutzernamen ändern
Nachdem Sie sich in das Dashboard von GitLab eingeloggt haben, klicken Sie oben rechts auf Ihr Symbolprofil und klicken Sie auf das Symbol „Einstellungen“, um Ihr Profil einzurichten.
Ändern Sie auf der Registerkarte „Profil“ Ihren Namen und Ihre E-Mail-Adresse und klicken Sie dann zur Bestätigung auf die Schaltfläche „Profileinstellungen aktualisieren“ unten.
Als nächstes gehen Sie zur Registerkarte „Konto“ und ändern Sie den Standard-Root-Benutzernamen mit Ihrem eigenen Benutzernamen, und klicken Sie dann auf die Schaltfläche „Benutzernamen aktualisieren“.
SSH-Schlüssel hinzufügen
Stellen Sie sicher, dass Sie bereits einen Schlüssel haben, wenn Sie keinen SSH-Schlüssel haben, können Sie ihn mit dem folgenden Befehl generieren.
ssh-keygen
Und du bekommst zwei Schlüssel im ~/.ssh/ Verzeichnis. ‚id_rsa‘ wäre dein privater Schlüssel und ‚id_rsa.pub‘ wäre dein öffentlicher Schlüssel.
Kehren Sie dann zum Webbrowser zurück und klicken Sie auf die Registerkarte’SSH Key‘. Kopieren Sie den Inhalt der Datei „id_rsa.pub“ und fügen Sie ihn in das Schlüsselfeld ein, und klicken Sie auf „Schlüssel hinzufügen“.
Damit wurde der SSH-Schlüssel aktualisiert.
Registrierungsbeschränkungen und Limiteinstellungen
Klicken Sie auf das Symbol „Admin-Bereich“, dann auf das Zahnradsymbol und wählen Sie „Einstellungen“.
Im Abschnitt „Konto- und Limiteinstellungen“ können Sie das maximale Projekt pro Benutzer konfigurieren. Und im Abschnitt „Anmeldebeschränkungen“ können Sie den Domänennamen Ihrer E-Mail zur Whitelist hinzufügen.
Nachdem dies alles erledigt ist, scrollen Sie nach unten und klicken Sie auf’Speichern‘.
Das ist es. Das ist es. Die Grundkonfiguration von GitLab ist abgeschlossen.
Schritt 8 – Prüfung
Nun werden wir einige Tests mit unserem selbst gehosteten GitLab durchführen.
Neues Projekt erstellen
Klicken Sie auf das Plus-Symbol oben rechts, um ein neues Projekt-Repository zu erstellen.
Geben Sie Ihren Projektnamen, Ihre Beschreibung und die Sichtbarkeitseinstellungen für Ihr Projekt ein. Und klicken Sie dann auf die Schaltfläche „Projekt erstellen“.
Damit ist das Projekt angelegt.
Test erster Commit
Nachdem Ihr Projekt erstellt wurde (in unserem Fall das Howtoforge), werden Sie auf die Projektseite weitergeleitet. Beginnen Sie nun, neue Inhalte zum Repository hinzuzufügen.
Stellen Sie sicher, dass Git auf Ihrem Computer installiert ist.
Für diesen Test müssen wir das Git-Konto auf dem Computer einrichten, was Sie mit den folgenden Befehlen tun können:
git config --global user.name "hakase" git config --global user.email "admin@example.com"
Klonen Sie das Repository und fügen Sie eine neue README.md-Datei hinzu.
git clone https://hakase@gitlab.hakase-labs.co/hakase/howtoforge.git cd howtoforge/ vim README.md
Sie werden nach dem hakase Passwort gefragt. Bitte geben Sie das gleiche Passwort ein, das wir beim ersten Zugriff auf GitLab verwendet haben, und fügen Sie dann neue Inhalte zur Datei README.md hinzu.
Übertragen Sie neue Änderungen am Repository mit den folgenden Befehlen.
git add . git commit -m 'Add README.md file by hakase-labs'
Als nächstes verschieben Sie das Repository auf den GitLab-Server.
git push origin master
Geben Sie Ihr Passwort ein und drücken Sie die Eingabetaste, um fortzufahren. Sie sollten das Ergebnis wie unten gezeigt sehen.
Öffnen Sie nun das Projekt (howtoforge in unserem Fall) von Ihrem Webbrowser aus, und Sie werden sehen, dass eine neue README.md-Datei zum Repository hinzugefügt wurde.
Dies bestätigt also, dass Gitlab erfolgreich auf Ubuntu CentOS 7 mit 4 GB Speicher installiert wurde.