GitLab auf Raspberrys

GitLab ist eine sehr umfangreiche Toolsammlung für die Git-Versionsverwaltung. GitLab bietet eine Infrastruktur für deine Softwareentwicklung. Es gibt einen Issue-Tracker, ein Issue-Board, ein Pipeline-Tool, eine Branch-/Pullrequest-Verwaltung und Vieles mehr.

Wenn ich dich nun auf den Geschmack gebracht habe, dann schnapp dir jetzt zwei Raspberrys. Ich zeige dir in diesem Tutorial eine Kinderleichte Installation. Wir installieren zusammen einen GitLab – Server und einen CI-Agent/GitLab-Runner.

GitLab-Server vorbereiten

Für die Server – Applikation solltest du mind. eine Raspberry Pi2 nehmen. Als Basis habe ich das aktuelle „Raspbian Stretch Lite“-Image genommen. Auf dem Mac geht das wie folgt:

Nach dem ersten Booten habe ich mit „sudo raspi-config“ den Hostname geändert und danach die Swapping – Einstellungen von 100 auf 2024 geändert.

#\~: sudo vim /etc/dphys-swapfile
#\~: sudo service dphys-swapfile restart

Mit dem Befehl „free“ lässt sich die Einstellung prüfen.

GitLab installieren

Folgende Pakete werden für die Installation benötigt. Außerdem benötigst du einen besonderen Schlüssel.

#\~: sudo apt-get install curl openssh-server ca-certificates apt-transport-https
#\~: curl https://packages.gitlab.com/gpg.key | sudo apt-key add -

Als nächstes wird ein Mail-Server installiert. Wenn du keine besonderen Einstellung benötigst, dann kannst du die Option „‚Internet Site“ wählen.

#\~: sudo apt-get install -y postfix

Der folgende Befehl downloaded ein Bash-Script und führt dieses aus. Dabei wird die zu deinen Betriebsystem passenden Gitab-Paket-Quelle hinzugfügt.

#\~: sudo curl -sS https://packages.gitlab.com/install/repositories/gitlab/raspberry-pi2/script.deb.sh | sudo bash

Mit dem folgenden Befehlt wird das Pakt installiert. Die „EXTERNAL_URL“ ist die zukünftige Adresse (Domain oder Hostname).

#\~: sudo EXTERNAL_URL="http://hostame" apt-get install gitlab-ce

Fertig! Nun kannst du „http://hostame“ in deine Browser eingeben und siehst das:

Du kann gleich ein Password für den „Root“-Nutzer vergeben und dich anschließen einloggen. Mit „New Project“ wird ein neues Projekt erstellt. Am Besten spielst du einfach ein Bisschen rum.


Werbung


Demo-Projekt und Demo-Pipeline einrichten

Ich erstelle ein neues Projekt namens „Tools„:

Danach kann ich Dateien in meinen Repository hinzufügen:

Der neue Dateiname ist „.gitlab-ci.yml„:

GitLab schlägt mir für diese Datei ein paar Vorlagen vor:

Ich nutze die „Bash„-Vorlage für dieses Tutorial:

Nun sehe ich diese Pipeline unt „CI / CD„:

GitLab-Runner installieren

Im meinen Fall ist der Runner ein zweiter Raspberry (alter Rev 1b). Auch hier habe ich Raspbian Stretch Lite genommen und den Hostname geändert. Der ARM-Runner wird wie folgt installiert:

#\~: cd ~
#\~: wget https://gitlab-ci-multi-runner-downloads.s3.amazonaws.com/master/binaries/gitlab-ci-multi-runner-linux-arm
#\~: chmod +x gitlab-ci-multi-runner-linux-arm

Mit „gitlab-ci-multi-runner-linux-arm register“ mache verbinde ich meine Runner mit den GitLab -Server.

#\~: sudo mkdir /etc/gitlab-runner
#\~: ./gitlab-ci-multi-runner-linux-arm register
#\~: sudo cp .gitlab-runner/config.toml /etc/gitlab-runner/config.toml

Die nötigen Informationen finde ich auf der Runner-Seite (http-s://GitLab-Server-Hostname/admin/runners).

Nach der Verkuplung erstelle ich noch ein Systemd-Service-File mit „sudo vim /etc/systemd/system/gitlab-runner.service„. Der Inhalt sieht wie folgt aus.

[Unit]
Description=GitLab CI-Multi Runner 
# start us only once the network and logging subsystems are available 
After=syslog.target network.target 

# See these pages for lots of options: 
# http://0pointer.de/public/systemd-man/systemd.service.html 
# http://0pointer.de/public/systemd-man/systemd.exec.html [Service] 
Type=simple 
ExecStart=/home/pi/gitlab-ci-multi-runner-linux-arm run 

# if we crash, restart 
RestartSec=1 
Restart=on-failure 

# use syslog for logging 
StandardOutput=syslog 
StandardError=syslog 

[Install] 
WantedBy=multi-user.target

Ich aktiviere den Service und starte Diesen:

#\~: sudo systemctl enable gitlab-runner.service
#\~: sudo systemctl start gitlab-runner.service

Auschecken in der Netbeans IDE

Bitte lege dir im GitLab-Adminbereich einen neuen Nutzer an.  Dieser Nutzer muss auch als Developer im Projekt-Member-Bereich hinzugefügt werden.

Danach kann ich das Repository in meiner IDE auschecken ( Ich nutze Netbeans).

Nun bist du bereit für dein Projekt!

You may also like...