So installierst und konfigurierst du GitLab unter Ubuntu 20.04

GitLab ist ein Open-Source-DevOps-Lifecycle-Tool zum Hosten und Verwalten von Git-Repositories. Es ist in Ruby geschrieben und bietet eine Vielzahl von Funktionen wie Wiki, Issue Management, Code Review, Monitoring, Continuous Integration und Deployment. Du kannst es in deiner eigenen Infrastruktur hosten und ein internes Repository für dein Entwicklungsteam bereitstellen. GitLab ist in drei Editionen erhältlich: Community Edition (CE), Enterprise Edition (EE) und eine von GitLab gehostete Version.

In diesem Tutorial zeigen wir dir, wie du GitLab CE auf einem Ubuntu 20.04 Server installierst.

Voraussetzungen

  • Ein Server, auf dem Ubuntu 20.04 läuft.
  • Ein gültiger Domainname, der auf deinen VPS verweist.
  • Ein Root-Passwort ist auf deinem Server eingerichtet.

Erste Schritte

Zuerst musst du deine Systempakete auf die neueste Version aktualisieren. Du kannst sie mit dem folgenden Befehl aktualisieren:

apt-get update -y
apt-get upgrade -y

Sobald dein System aktualisiert ist, installierst du die anderen benötigten Pakete mit dem folgenden Befehl:

apt-get install apt-transport-https gnupg2 curl -y

Wenn alle erforderlichen Pakete installiert sind, kannst du mit dem nächsten Schritt fortfahren.

GitLab CE installieren

Standardmäßig ist GitLab nicht im Standard-Repository von Ubuntu 20.04 verfügbar. Daher musst du das offizielle GitLab-Repository zu deinem System hinzufügen.

Lade zunächst den GitLab GPG-Schlüssel herunter und füge ihn mit dem folgenden Befehl hinzu:

curl -sL https://packages.gitlab.com/gitlab/gitlab-ce/gpgkey | apt-key add -

Als Nächstes fügst du das GitLab-Repository in APT mit dem folgenden Befehl hinzu:

nano /etc/apt/sources.list.d/gitlab.list

Füge die folgenden Zeilen hinzu:

deb https://packages.gitlab.com/gitlab/gitlab-ce/ubuntu/ bionic main
deb-src https://packages.gitlab.com/gitlab/gitlab-ce/ubuntu/ bionic main

Speichere und schließe die Datei, wenn du fertig bist. Aktualisiere dann das Repository und installiere GitLab CE mit dem folgenden Befehl:

apt-get update -y
apt-get install gitlab-ce -y

Wenn GitLab erfolgreich installiert wurde, solltest du die folgende Ausgabe erhalten:

It looks like GitLab has not been configured yet; skipping the upgrade script.

       *.                  *.
      ***                 ***
     *****               *****
    .******             *******
    ********            ********
   ,,,,,,,,,***********,,,,,,,,,
  ,,,,,,,,,,,*********,,,,,,,,,,,
  .,,,,,,,,,,,*******,,,,,,,,,,,,
      ,,,,,,,,,*****,,,,,,,,,.
         ,,,,,,,****,,,,,,
            .,,,***,,,,
                ,*,.
  


     _______ __  __          __
    / ____(_) /_/ /   ____ _/ /_
   / / __/ / __/ /   / __ `/ __ \
  / /_/ / / /_/ /___/ /_/ / /_/ /
  \____/_/\__/_____/\__,_/_.___/
  

Thank you for installing GitLab!
GitLab was unable to detect a valid hostname for your instance.
Please configure a URL for your GitLab instance by setting `external_url`
configuration in /etc/gitlab/gitlab.rb file.
Then, you can start your GitLab instance by running the following command:
  sudo gitlab-ctl reconfigure

For a comprehensive list of configuration options please see the Omnibus GitLab readme
https://gitlab.com/gitlab-org/omnibus-gitlab/blob/master/README.md

Jetzt ist GitLab in deinem System installiert. Du kannst jetzt mit dem nächsten Schritt fortfahren.

GitLab konfigurieren

Als Nächstes musst du die URL von GitLab festlegen. Du kannst sie in der Datei /etc/gitlab/gitlab.rb definieren.

nano /etc/gitlab/gitlab.rb

Ändere die folgende Zeile mit deinem gültigen Hostnamen oder Domänennamen:

external_url 'http://gitlab.linuxbuz.com'

Speichere und schließe die Datei. Konfiguriere das GitLab neu, indem du den folgenden Befehl ausführst:

gitlab-ctl reconfigure

Sobald das GitLab erfolgreich konfiguriert ist, solltest du die folgende Ausgabe erhalten:

Recipe: gitlab::puma
  * runit_service[puma] action restart (up to date)
  * runit_service[puma] action restart (up to date)
Recipe: gitlab::sidekiq-cluster
  * runit_service[sidekiq] action restart (up to date)
Recipe: gitlab::gitlab-rails
  * execute[clear the gitlab-rails cache] action run
    - execute /opt/gitlab/bin/gitlab-rake cache:clear
Recipe: nginx::enable
  * runit_service[nginx] action restart (up to date)
Recipe: monitoring::grafana
  * runit_service[grafana] action restart (up to date)

Running handlers:
Running handlers complete
Chef Client finished, 12/767 resources updated in 01 minutes 20 seconds
gitlab Reconfigured!

Du kannst nun den Status von GitLab mit folgendem Befehl überprüfen:

gitlab-ctl status

Du solltest die folgende Ausgabe erhalten:

down: alertmanager: 1s, normally up, want up; run: log: (pid 12973) 142s
run: gitaly: (pid 14216) 17s; run: log: (pid 12352) 286s
run: gitlab-exporter: (pid 14165) 19s; run: log: (pid 12885) 161s
run: gitlab-workhorse: (pid 14152) 19s; run: log: (pid 12767) 185s
run: grafana: (pid 14252) 15s; run: log: (pid 13855) 54s
run: logrotate: (pid 12818) 174s; run: log: (pid 12826) 173s
run: nginx: (pid 12798) 180s; run: log: (pid 12807) 179s
run: node-exporter: (pid 14160) 19s; run: log: (pid 12867) 167s
run: postgres-exporter: (pid 14246) 15s; run: log: (pid 13082) 130s
run: postgresql: (pid 12515) 280s; run: log: (pid 12532) 277s
run: prometheus: (pid 14183) 18s; run: log: (pid 12931) 149s
run: puma: (pid 12718) 199s; run: log: (pid 12727) 196s
run: redis: (pid 12309) 293s; run: log: (pid 12318) 292s
run: redis-exporter: (pid 14176) 18s; run: log: (pid 12908) 154s
run: sidekiq: (pid 12737) 193s; run: log: (pid 12749) 190s

GitLab mit Let’s Encrypt sichern

Jetzt ist GitLab installiert und konfiguriert. Als Nächstes empfiehlt es sich, deine GitLab-Instanz mit Let’s Encrypt SSL zu sichern.

Installiere zunächst das Let’s Encrypt Client Tool mit dem folgenden Befehl:

apt-get install letsencrypt -y

Nach der Installation bearbeitest du die Datei /etc/gitlab/gitlab.rb und aktivierst Let’s Encrypt.

nano /etc/gitlab/gitlab.rb

Ändere die folgenden Zeilen:

external_url 'https://gitlab.linuxbuz.com'
letsencrypt['enable'] = true
letsencrypt['contact_emails'] = ['admin@example.com']
letsencrypt['auto_renew'] = true

Speichere und schließe die Datei, wenn du fertig bist. Anschließend konfigurierst du GitLab mit dem folgenden Befehl neu:

gitlab-ctl reconfigure

Sobald du damit fertig bist. Du kannst mit dem nächsten Schritt fortfahren.

Zugriff auf die GitLab-Oberfläche

Zu diesem Zeitpunkt ist GitLab mit Let’s Encrypt free SSL gesichert. Öffne nun deinen Webbrowser und gib die URL https://gitlab.linuxbuz.com ein. Du wirst auf die folgende Seite weitergeleitet:

Lege nun dein neues Passwort fest und klicke auf die Schaltfläche Passwort ändern. Du solltest den folgenden Bildschirm sehen:

Gib jetzt deinen Root-Benutzernamen und dein Passwort ein und klicke auf die Schaltfläche Anmelden. Du solltest den folgenden Bildschirm sehen:

Öffentliche Anmeldung deaktivieren

In der Standardeinstellung erlaubt GitLab jedem, sich über die GitLab-URL für ein Konto anzumelden. Diese Einstellung ist nützlich, wenn du ein öffentliches Projekt hosten willst. Wenn du GitLab jedoch für dein internes Projekt nutzen möchtest, solltest du die öffentliche Anmeldung deaktivieren.

Im GitLab-Dashboard klickst du auf das Symbol für den Verwaltungsbereich. Du solltest den folgenden Bildschirm sehen:

Klicke jetzt auf die Einstellungen im linken Bereich. Du solltest den folgenden Bildschirm sehen:

Scrolle nach unten zu den Anmeldebeschränkungen und klicke auf die Schaltfläche Erweitern. Deaktiviere das Kontrollkästchen Anmeldung aktiviert und klicke auf Änderungen speichern, wenn du fertig bist.

Melde dich nun von GitLab ab und greife erneut auf GitLab zu. Du solltest den folgenden Bildschirm sehen, auf dem die öffentliche Anmeldung deaktiviert ist:

Überprüfe die Funktionsfähigkeit von GitLab

GitLab ist nun installiert und konfiguriert. Als Nächstes erstellst du im GitLab-Dashboard ein neues Projekt.

Klicke im GitLab-Dashboard auf die Schaltfläche Projekt. Du solltest den folgenden Bildschirm sehen:

Klicke nun auf die Schaltfläche Projekt erstellen. Du solltest den folgenden Bildschirm sehen:

Gib deinen Projektnamen, die URL, die Beschreibung und die Sichtbarkeitsstufe ein und klicke auf die Schaltfläche Projekt erstellen. Du solltest den folgenden Bildschirm sehen:

Gehe dann zum entfernten System und konfiguriere Git mit dem folgenden Befehl:

git config --global user.name "Hitesh Jethva"
git config --global user.email "hitjethva@gmail.com"

Als Nächstes klonst du das Repository deines Projekts mit dem folgenden Befehl:

git clone https://gitlab.linuxbuz.com/root/project1.git

Du wirst aufgefordert, deinen GitLab-Benutzernamen und dein Passwort einzugeben (siehe unten):

Cloning into 'project1'...
Username for 'https://gitlab.linuxbuz.com': root
Password for 'https://root@gitlab.linuxbuz.com': 
warning: You appear to have cloned an empty repository.
Checking connectivity... done.

Wechsle dann in das Verzeichnis deines Projekts und erstelle eine README.md-Datei:

cd project1
echo "This is my first file" > README.md

Füge die Datei README.md zu deinem Repository hinzu und übertrage die Änderungen mit dem folgenden Befehl:

git add README.md
git commit -m "add README"

Du solltest die folgende Ausgabe sehen:

[master (root-commit) ae4d108] add README
 1 file changed, 1 insertion(+)
 create mode 100644 README.md

Als Nächstes pushst du deine Datei mit folgendem Befehl in das entfernte Repository:

git push -u origin master

Gib deinen GitLab-Benutzernamen und dein Passwort ein, um die Datei in das entfernte Repository zu übertragen:

Username for 'https://gitlab.linuxbuz.com': root
Password for 'https://root@gitlab.linuxbuz.com': 
Counting objects: 3, done.
Writing objects: 100% (3/3), 237 bytes | 0 bytes/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To https://gitlab.linuxbuz.com/root/project1.git
 * [new branch]      master -> master
Branch master set up to track remote branch master from origin.

Öffne nun dein GitLab-Dashboard und klicke auf die Schaltfläche Projekt. Auf dem folgenden Bildschirm solltest du deine README.md-Datei sehen:

Fazit

In der obigen Anleitung hast du gelernt, wie du GitLab installierst und mit Let’s Encrypt SSL auf Ubuntu 20.04 sicherst. Außerdem hast du gelernt, wie du grundlegende Git-Operationen mit GitLab durchführen kannst. Ich hoffe, du kannst GitLab jetzt in deiner Entwicklungsumgebung einsetzen. Wenn du noch Fragen hast, kannst du dich gerne an mich wenden.

Das könnte dich auch interessieren …