GitLab-Tutorial: Installation und erste Schritte in GitLab

GitLab ist ein beliebtes Versionskontrollsystem (VCS), das vor allem in der Software-Entwicklung zum Einsatz kommt. Die webbasierte Software wurde 2011 von Dmitri Saparoschez in der Programmiersprache „Ruby on Rails“ geschrieben und veröffentlicht und gilt in Entwicklerkreisen inzwischen als unverzichtbares Tool.

Der Hauptvorteil von GitLab ist, dass es die teamübergreifende, agile Software-Entwicklung erheblich erleichtert. Mehrere Entwickler können gleichzeitig an einem Projekt arbeiten und beispielsweise verschiedene Features parallel bearbeiten. Durch die kontinuierliche Protokollierung aller Vorgänge wird sichergestellt, dass Änderungen am Code nicht verloren gehen oder aus Versehen überschrieben werden. Außerdem lassen sich bereits getätigte Änderungen mühelos rückgängig machen.

GitLab basiert auf der weitverbreiteten Versionsverwaltungs-Software Git. Git ist als Open-Source-Software frei zugänglich und zählt zu den am häufigsten genutzten Versionskontrollsystemen überhaupt. GitLab zählt zu den prominentesten GitHub-Alternativen (als GitHub 2018 von Microsoft übernommen wurde, wechselten zahlreiche Benutzer zu GitLab).

Wie funktioniert GitLab?

GitLab ist eine webbasierte Anwendung mit einer grafischen Benutzeroberfläche, lässt sich aber auch auf dem eigenen Server installieren. Das Kernstück von GitLab bilden Projekte, in denen der zu bearbeitende Code in digitalen Archiven, den sogenannten Repositories, gespeichert wird. In diesen Projektverzeichnissen finden sich sämtliche Inhalte und Dateien eines Software-Projekts, also z. B. JavaScript-, HTML-, CSS- oder PHP-Dateien.

GitLab funktioniert grundsätzlich folgendermaßen: Alle Beteiligten an einem Projekt laden sich zunächst eine eigene Kopie des zentralen Repositorys auf ihren Rechner. Änderungen am Code werden in der Folge immer zunächst mittels sogenannter Commits vorgenommen. Nach der Bearbeitung werden die Änderungen dann im Haupt-Repository eingespeist.

Ein weiteres wichtiges Feature ist das Branching. Dabei können Nutzer einen „Zweig“ erstellen, der vom eigentlichen Hauptteil des Codes abzweigt und unabhängig davon bearbeitet werden kann. Diese Funktion eignet sich vor allem dann, wenn neue Funktionen eingeführt und getestet werden sollen, ohne dabei die Entwicklung der Hauptlinie zu beeinträchtigen. GitLab ist dank eingebauter Continuous Delivery und Continuous Integration gut für die Arbeit mit Branches geeignet und bietet verschiedene nützliche Features wie Merge-Requests und das Erstellen von Forks. Daher zählt die Software zu den beliebtesten Continuous-Integration-Tools .

Features von GitLab im Überblick

Zu den wichtigsten Features von GitLab gehören:

  • Benutzerfreundliche Oberfläche
  • Branches können privat bleiben oder öffentlich geteilt werden
  • Verwaltung von mehreren Repositories möglich
  • Code-Review
  • Integriertes Bug- und Issue-Tracking
  • Integrierte, kostenlose Continuous Integration/Delivery (CI/CD)
  • Projekt-Wikis
  • Einfache Erstellung von Code-Snippets, mit denen sich Teile des Codes teilen lassen

Lizenz und Nutzungsmodelle von GitLab

GitLab basiert auf einem offenen, frei zugänglichen Quellcode. 2013 wurde zusätzlich eine eigene Enterprise-Edition für Unternehmen eingeführt, weshalb mittlerweile zwei Nutzungsmodelle zur Verfügung stehen:

  • GitLab CE: Community-Edition (kostenlos)
  • GitLab EE: Enterprise-Edition (kostenpflichtig)

Beide Versionen basieren auf der Open-Source-Lizenz MIT. Die Enterprise-Edition hat im Vergleich zur kostenlosen Community-Edition einige zusätzliche Funktionen. GitLab bietet hierbei drei verschiedene Abo-Modelle an, je nach Umfang der gewünschten Zusatz-Features.

Zudem lässt sich die Enterprise-Edition kostenlos nutzen, dabei erhält man allerdings nur die Basis-Funktionen aus der Community-Edition. Dieses Modell eignet sich, wenn man eventuell zu einem späteren Zeitpunkt die Enterprise-Variante installieren möchte, da der Umstieg nur einen Mausklick erfordert. Im Unterschied dazu ist es wesentlich zeitaufwendiger, von der Community- auf die Enterprise-Edition umzusteigen.

GitLab installieren: So funktioniert’s

Für die Nutzung von GitLab empfiehlt sich grundsätzlich eine Linux-Umgebung. Wie Git ist die GitLab-Software von Haus aus auf Linux zugeschnitten. Eine Installation und Nutzung unter Windows ist hingegen nur mit Einschränkungen möglich – hierfür kann eine virtuelle Maschine verwendet werden, die eine Linux-Umgebung auf dem Windows-Rechner simuliert. Unkomplizierter ist die Installation des sogenannten GitLab-Runners, der auch benötigt wird, um die Continuous Integration von GitLab zu nutzen.

GitLab selbst hosten oder Cloud-Lösung nutzen

Die Installation von GitLab auf dem eigenen Server stellt Anwender mit Linux-Vorkenntnissen zwar vor keine größeren Herausforderungen, ist allerdings relativ zeitaufwendig. Neben der Installation selbst muss Zeit für die Konfiguration und für regelmäßige Wartungsarbeiten eingeplant werden.

Wer sich das sparen möchte, kann GitLab auch als Software as a Service (SaaS) auf einem Cloud-Server installieren und verwenden (wird von diversen Providern angeboten). So lässt sich die Software innerhalb kürzester Zeit, ohne aufwendige Installation und bereits fertig konfiguriert einsetzen. Der GitLab-Runner wird in der Regel mitinstalliert, sodass man direkt loslegen kann.

Tipp

IONOS bietet leistungsstarke und günstige Cloud-Server und virtuelle Server an, mit denen Sie in kürzester Zeit Ihre eigene virtuelle Infrastruktur wunschgemäß einrichten. Die Server laufen mit allen gängigen Linux-Distributionen (Ubuntu, Debian) sowie optional mit Windows.

GitLab auf Linux-Server installieren

Um GitLab auf einem Linux-Server zu installieren, benötigen Sie zunächst die Git-Software. Wie Sie Git auf dem Server installieren, erklären wir in unserem Git-Tutorial. Anschließend sollten Sie das GitLab-Omnibus-Package von der offiziellen GitLab-Website herunterladen. Dieses Paket enthält alle benötigten Dateien und wird für die Installation von GitLab in Linux empfohlen.

Repository aktualisieren

Melden Sie sich anschließend als Root-Benutzer am Server an und aktualisieren Sie das Repository (hier von Ubuntu), um alle notwendigen Pakete für GitLab zu erhalten. Dazu verwenden Sie diese Befehle:

sudo ssh root@GitLabServer
sudo apt-get update

Anschließend installieren Sie die Pakete wie folgt:

sudo apt install curl openssh-server ca-certificates postfix

Während der Installation von Postfix erscheint ein Konfigurationsbildschirm. Wählen Sie hier die Option „Internet Site“ und geben Sie den Namen der Server-Domäne ein, die Sie für das Versenden und Empfangen von E-Mails verwenden.

GitLab installieren

Im nächsten Schritt installieren Sie das Omnibus-Paket von GitLab. Dazu müssen Sie zunächst das „GitLab Package Repository“ mit folgendem Befehl hinzufügen:

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

Danach installieren Sie GitLab mit dem Befehl apt. In diesem Beispiel-Code wird GitLab in der Community Edition (CE) installiert:

sudo apt install GitLab-ce

Nach der Eingabe lädt der Server das GitLab-Paket selbstständig herunter und installiert es. Nach bestätigter Installation sollten Sie noch die Haupt-URL konfigurieren, mit der Sie auf den GitLab-Server zugreifen.

Ändern Sie die URL "https://GitLab.example.com" in die URL, die Sie tatsächlich verwenden. Dazu gehen Sie in das Verzeichnis /etc/GitLab, in dem sich die Konfiguration befindet, und bearbeiten die Konfigurationsdatei GitLab.rb mit dem Standard-Text-Editor vim.

Die Befehle sehen folgendermaßen aus:

cd /etc/GitLab
vim GitLab.rb

In der Datei GitLab.rb suchen Sie Zeile 9 („external_url) und tragen dort die gewünschte URL ein. GitLab wird die Installation anschließend unter dieser URL starten und konfigurieren.

Beim ersten Start öffnet sich ein Bildschirm, in dem Sie das Passwort zurücksetzen müssen. Legen Sie das Passwort für den Administrator fest; anschließend werden Sie zum Log-in-Bildschirm weitergeleitet. Für die Anmeldung können Sie zunächst den Standard-Benutzer „root“ verwenden. Die Einstellungen lassen sich später in den Profileinstellungen ändern.

GitLab unter Windows installieren

GitLab selbst lässt sich nicht auf einem Windows-Server installieren, allerdings kann man mit einem sogenannten GitLab-Runner von Windows aus auf eine bereits eingerichtete GitLab-Installation auf einem Linux-Server zugreifen. Diese Software wird unter Windows installiert und ist mit der Continuous-Integration-Funktionalität von GitLab (GitLab CI/CD) kompatibel. Auf diese Weise kann der Runner Anfragen und Arbeitsaufträge an GitLab senden.

Git für Windows und GitLab-Runner-Binärdaten herunterladen

Für die Installation von GitLab auf einem Windows-Server wird zunächst Git für Windows benötigt. Sie können die Software auf der offiziellen Website herunterladen. Außerdem ist die Vergabe eines individuellen Passworts für den Nutzer-Account zu empfehlen, sofern nicht der Standard-System-Account verwendet werden soll.

Ebenfalls notwendig ist ein sogenanntes Token, das dem Runner Zugriff auf die GitLab-Instanz gewährt. Sie finden einen solchen Zugangsschlüssel in den Einstellungen von GitLab unter „Settings“ -> „CI/CD“.

Im nächsten Schritt laden Sie sich die Binärdatei (x86 oder amd64) für den GitLab-Runner für Windows herunter und erstellen einen Ordner an einem beliebigen Ort in Ihrem System, z. B. C:\GitLab-runner.

Den GitLab-Runner in Windows registrieren

Um den GitLab-Runner zu registrieren, geben Sie nun den folgenden Befehl in die Kommandozeile ein:

./GitLab-runner.exe register

Anschließend geben Sie die URL der GitLab-Installation (hier exemplarisch) ein:

https://GitLab.com

Im nächsten Fenster geben Sie das Token ein, um den Runner mit der GitLab-Installation zu verknüpfen. Anschließend können Sie eine eigene Beschreibung für den Runner festlegen. Diese Option lässt sich aber auch später im Interface von GitLab ändern. Das nächste Fenster bietet die Möglichkeit, Tags festzulegen. Diese Tags eignen sich vor allem dann, wenn ein Runner mehrere Projekte gleichzeitig bearbeiten soll. Mit den Tags können Sie genau festlegen, welche Projekte jeweils zugewiesen werden.

Im letzten Schritt legen Sie noch den sogenannten „executor“ fest, d. h. die Umgebung, in der der Runner arbeitet, etwa in einer VirtualBox-Instanz oder in einer Shell-Umgebung. Shell ist der executor, der am einfachsten zu konfigurieren ist und die Standard-Option, wenn Sie einen GitLab-Runner neu unter Windows registrieren.

Please enter the executor: ssh, docker+machine, docker-ssh+machine, kubernetes, docker, parallels, virtualbox, docker-ssh, shell:
shell

GitLab-Runner unter Windows installieren und starten

Um den GitLab-Runner zu installieren, können Sie entweder den eingebauten System-Account nutzen oder einen eigenen Benutzer-Account. Navigieren Sie in der PowerShell bzw. Eingabeaufforderung zu dem Verzeichnis, das Sie oben angelegt haben, und geben Sie nacheinander folgende Befehle ein:

cd C:\GitLab-Runner
.\GitLab-runner.exe install
.\GitLab-runner.exe start

GitLab-Tutorial: Erste Schritte in GitLab

Nach der Installation von GitLab lässt sich die grafische Benutzeroberfläche unter der vorher festgelegten URL aufrufen. Hierzu können Sie den Browser Ihrer Wahl benutzen und sich anschließend als Administrator anmelden. Der Benutzername und das dazugehörige Passwort lassen sich im Admin-Bereich auch nachträglich ändern.

Nutzer in GitLab erstellen

Im Admin-Bereich können Sie durch Auswählen des Menüpunkts „New User“ die Benutzer erstellen, die zusammen an den jeweiligen GitLab-Projekten arbeiten. Dazu definieren Sie eine eigene E-Mail-Adresse sowie individuelle Log-in-Daten für den Benutzer und weisen ihn anschließend dem gewünschten Projekt zu.

An gleicher Stelle lassen sich auch die Benutzerrechte durch Auswählen von „Edit“ ändern und Nutzer blockieren oder vollständig entfernen. Beachten Sie, dass das Blockieren eines Nutzers verhindert, dass dieser sich anmeldet, während alle Daten (beispielsweise Commits) erhalten bleiben. Das vollständige Entfernen löscht auch die mit dem Nutzer verknüpften Informationen – diese Option sollte daher nur mit Bedacht ausgewählt werden.

Ein neues Projekt erstellen

Der wichtigste Schritt besteht zunächst darin, ein neues Projekt anzulegen. Dazu wählen Sie die Schaltfläche „New Project“ aus, woraufhin Sie zum Fenster des zu erstellenden Projekts gelangen. In das Feld „Project Name“ tragen Sie den Namen des Projekts ein, wobei dieser keine Sonderzeichen oder Leerzeichen enthalten darf. Unter „Visibility“ legen Sie die Sichtbarkeit fest, also welche Nutzer Zugriff auf das Projekt haben. Dabei wird zwischen folgenden Stufen unterschieden:

  • Privat: Nur Sie selbst haben Zugriff.
  • Intern: Jeder angemeldete Nutzer hat Zugriff.
  • Öffentlich: Auf das Projekt kann jeder Nutzer ohne vorherige Authentifizierung zugreifen.

Nach Auswahl der Einstellungen erstellen Sie das Projekt durch Auswählen von „create project“. Danach können Sie es direkt mit einem lokalen Git-Repository verbinden. Dazu wählen Sie in der Projektansicht unter der Projektbezeichnung die Option „HTTPS“ aus und kopieren die angezeigten Befehle in die Kommandozeile.

Falls Sie noch keine lokale Kopie des Repositorys auf dem Server haben, können Sie das an dieser Stelle nachholen, indem Sie folgenden Befehl eingeben:

$ git clone https://server/namespace/project.git

Nachdem das Repository mit dem ersten Push initialisiert wurde, lassen sich alle Informationen zu dem Repository auf der Projektseite einsehen. Dort können Sie sich auch die letzten Aktivitäten anzeigen lassen und im Commit-Log nachvollziehen, wer wann welche Änderungen am Code vorgenommen hat.

Mit GitLab zusammen im Team arbeiten

Der einfachste Weg, zusammen mit anderen Nutzern an einem GitLab-Projekt zu arbeiten, besteht darin, den Nutzern direkten Push-Zugriff auf das Repository zu gewähren. Dazu fügen Sie die Nutzer, wie oben erläutert, zu einem Projekt hinzu und statten sie mit den entsprechenden Zugriffsrechten aus.

Nutzer mit der Berechtigung „developer“ oder höher können ihre Commits und Branches ohne Einschränkungen in das Repository verschieben. Alternativ lassen sich auch sogenannte Merge-Requests benutzen: Dadurch lässt sich der Zugriff stärker kontrollieren, da der Master-Branch nicht direkt bearbeitet wird. Stattdessen können Nutzer einen Branch erstellen, ihre Commits eintragen und dann eine Merge-Anfrage stellen, um den Branch mit dem Master (oder einem anderen Branch) zu verbinden.

Nutzer ohne Zugriffsrechte können außerdem Forks erstellen, also ihre eigene Kopie des Projekts mit Push-Commits bearbeiten. Anschließend können sie einen Merge-Request einreichen, um die Fork wieder in das Hauptprojekt zu integrieren. Mit dieser Funktion hat der Eigentümer des Projekts die volle Kontrolle darüber, was jeweils in das Repository gelangt, kann aber gleichzeitig unbekannten Nutzern ermöglichen, ihre Beiträge einzureichen.

Hinweis

Als ausgereiftes Kollaborationstool verfügt GitLab über zahlreiche Funktionen, die die Zusammenarbeit im Team erleichtern, beispielsweise Projekt-Wikis oder Tools zur Systemwartung.