Ein CI/CD Runner unter Ubuntu ist die praktische Arbeitsmaschine hinter modernen DevOps-Pipelines. Dort werden Jobs ausgeführt, Code gebaut, Tests gestartet, Container erstellt oder Deployments vorbereitet. Gerade für Linux-Lernende ist das Thema spannend, weil es viele wichtige Bereiche verbindet: Paketverwaltung, Benutzerrechte, Netzwerkzugriffe, Dienste, Logs und Automatisierung. Offizielle Dokumentationen von GitLab, GitHub und Jenkins beschreiben solche Runner oder Agenten jeweils als Systeme, die Build-, Test- und Deployment-Aufgaben auf selbst verwalteter Infrastruktur ausführen. GitLab weist außerdem ausdrücklich darauf hin, dass Runner aus Sicherheits- und Performance-Gründen nicht auf derselben Maschine wie die GitLab-Instanz laufen sollten. :contentReference[oaicite:0]{index=0}
Für Anfänger klingt das Thema zuerst kompliziert, weil Begriffe wie Runner, Executor, Self-Hosted Runner, Agent, Token und Service zusammenkommen. In der Praxis ist die Grundidee aber einfach: Eine CI/CD-Plattform wie GitLab CI, GitHub Actions oder Jenkins steuert Jobs, und ein Ubuntu-Runner führt diese Jobs aus. Genau deshalb ist das Thema Ubuntu CI/CD Runner einrichten für DevOps-Profis so wichtig. Wer diese Grundlage sauber versteht, kann stabile Build- und Testsysteme betreiben und später sicher erweitern. GitHub beschreibt selbstgehostete Runner als Systeme, die Sie selbst bereitstellen und verwalten, um Workflows auszuführen, während Jenkins Agents als Maschinen mit Java und Verbindung zum Controller beschrieben werden. :contentReference[oaicite:1]{index=1}
Was ist ein CI/CD Runner unter Ubuntu?
Ein CI/CD Runner ist ein System, das Befehle aus einer Pipeline wirklich ausführt. Die Plattform selbst verwaltet den Ablauf, aber der Runner erledigt die praktische Arbeit. Das kann zum Beispiel das Ausführen von Shell-Befehlen, das Bauen eines Projekts, das Testen von Software oder das Erstellen eines Containers sein. GitLab nennt GitLab Runner die Anwendung, die CI/CD-Jobs ausführt. GitHub beschreibt selbstgehostete Runner als Systeme, die Jobs aus GitHub Actions ausführen. Jenkins spricht von Agents, die Build-Aufgaben für den Controller übernehmen. :contentReference[oaicite:2]{index=2}
Typische Aufgaben eines Runners
- Quellcode auschecken
- Pakete und Abhängigkeiten installieren
- Tests ausführen
- Artefakte erzeugen
- Container bauen
- Deployments vorbereiten
Warum Ubuntu eine gute Basis für CI/CD Runner ist
Ubuntu ist für Runner besonders gut geeignet, weil es eine sehr große Software-Auswahl, klare Paketverwaltung und eine starke Verbreitung in Entwickler- und Serverumgebungen bietet. Viele CI/CD-Werkzeuge dokumentieren Linux- und speziell Ubuntu-nahe Installationswege sehr gut. GitLab bietet offizielle Linux-Paketquellen für GitLab Runner an, GitHub dokumentiert das Hinzufügen von selbstgehosteten Linux-Runnern direkt, und Jenkins beschreibt Linux ausdrücklich als unterstützte Plattform für Controller und Agents. Genau deshalb ist Ubuntu für Lernumgebungen und produktive Runner sehr praktisch. :contentReference[oaicite:3]{index=3}
Welche Runner-Typen Sie kennen sollten
Auch wenn die Grundidee ähnlich ist, unterscheiden sich die konkreten Plattformen. Bei GitLab heißt das Werkzeug GitLab Runner. Bei GitHub Actions spricht GitHub von self-hosted runners. Bei Jenkins heißt das ausführende System meistens Agent. Inhaltlich sind diese Konzepte aber eng verwandt: Ein zentrales System plant Jobs, und ein Ubuntu-Host führt sie aus. Für Anfänger ist es sinnvoll, diese Gemeinsamkeit zuerst zu verstehen, statt sich nur auf Markennamen zu konzentrieren. :contentReference[oaicite:4]{index=4}
Einfacher Überblick
- GitLab Runner für GitLab CI/CD
- Self-hosted runner für GitHub Actions
- Jenkins Agent für Jenkins
Wann ein eigener Ubuntu-Runner sinnvoll ist
Ein eigener Runner ist besonders sinnvoll, wenn Sie mehr Kontrolle über Hardware, Betriebssystem, Werkzeuge oder interne Netzwerke brauchen. GitHub nennt genau diese Vorteile selbstgehosteter Runner ausdrücklich: mehr Kontrolle über Hardware, Betriebssystem und installierte Tools. Auch GitLab betont, dass selbst verwaltete Runner vollständige Kontrolle über die Infrastruktur bieten. Das ist nützlich, wenn Sie spezielle Compiler, Docker, interne Paketquellen, eigene Zertifikate oder Zugriff auf private Netzwerke benötigen. :contentReference[oaicite:5]{index=5}
Wichtige Voraussetzungen vor der Einrichtung
Bevor Sie einen Ubuntu CI/CD Runner einrichten, sollten einige Grundlagen stimmen. Das System sollte aktuell sein, genug CPU, RAM und Speicher bieten und nicht mit unnötigen Diensten überladen sein. Für GitLab Runner beschreibt GitLab Linux-Paketquellen als empfohlenen Installationsweg. Für Jenkins Agents ist laut offizieller Jenkins-Dokumentation eine Java-Installation und eine Netzwerkverbindung zum Controller nötig. Für GitHub Actions self-hosted runner brauchen Sie den Registrierungsvorgang aus dem jeweiligen Repository, der Organisation oder dem Enterprise-Bereich. :contentReference[oaicite:6]{index=6}
Typische Voraussetzungen
- Aktuelles Ubuntu-System
- Sudo-Rechte
- Stabile Netzwerkverbindung
- Ausreichend CPU, RAM und Speicher
- Für Jenkins: Java
- Für GitLab oder GitHub: gültiger Runner-Token oder Setup-Schritt im Webinterface
Ubuntu vorbereiten und aktualisieren
Ein sauberer Runner sollte nicht mit veralteten Paketen starten. Gerade Build- und Testsysteme profitieren von einem aktuellen Basissystem.
Paketlisten aktualisieren
sudo apt update
Pakete aktualisieren
sudo apt upgrade -y
Danach können Sie die eigentliche Runner-Software installieren.
GitLab Runner unter Ubuntu installieren
GitLab dokumentiert für Linux ausdrücklich die Installation über offizielle Paketquellen. Dieser Weg ist für Ubuntu besonders sauber, weil Updates und Dienstverwaltung gut integriert sind. GitLab erklärt außerdem, dass Sie Runner entweder über das Repository oder in Ausnahmefällen manuell installieren können, wobei die manuelle Methode eher als letzte Option gedacht ist. :contentReference[oaicite:7]{index=7}
Typischer Installationsablauf für GitLab Runner
- Offizielles GitLab-Repository einbinden
- Paket installieren
- Dienst prüfen
- Runner registrieren
GitLab Runner installieren
sudo apt install gitlab-runner -y
Die genaue Paketquelle richtet sich nach der offiziellen GitLab-Dokumentation für Linux-Repositories. :contentReference[oaicite:8]{index=8}
GitLab Runner registrieren
Nach der Installation muss ein GitLab Runner registriert werden. GitLab dokumentiert, dass für neue Runner ein runner authentication token verwendet wird und dass diese Token typischerweise mit glrt- beginnen. Nach der Registrierung wird die Konfiguration in config.toml gespeichert. Genau dieser Schritt verbindet den Ubuntu-Host mit GitLab. :contentReference[oaicite:9]{index=9}
Typischer Registrierungsbefehl
sudo gitlab-runner register
Im Dialog geben Sie URL, Token, Namen, Tags und einen Executor an. Für Anfänger ist wichtig: Die Registrierung ist nicht nur eine Formalität, sondern der eigentliche Verknüpfungsschritt zwischen Plattform und Runner. :contentReference[oaicite:10]{index=10}
Executor bei GitLab Runner verstehen
GitLab Runner kann Jobs auf unterschiedliche Weise ausführen. Sehr häufig sind der Shell-Executor und der Docker-Executor. Für Lernumgebungen ist der Shell-Executor einfacher zu verstehen, weil Jobs direkt auf dem Ubuntu-System laufen. Für sauberere Isolation ist der Docker-Executor oft professioneller. GitLab weist in der manuellen Linux-Dokumentation zusätzlich darauf hin, dass Docker zuerst installiert werden sollte, wenn Sie den Docker-Executor verwenden möchten. :contentReference[oaicite:11]{index=11}
Einfacher Unterschied
- Shell-Executor führt Jobs direkt auf Ubuntu aus
- Docker-Executor führt Jobs in Containern aus
GitHub Actions Self-Hosted Runner unter Ubuntu hinzufügen
GitHub dokumentiert, dass selbstgehostete Runner auf Repository-, Organisations- oder Enterprise-Ebene hinzugefügt werden können. Im Webinterface wird ein neuer Runner angelegt, und GitHub zeigt danach die passenden Befehle für das Zielsystem an. Für Ubuntu ist das besonders praktisch, weil die Plattform die Linux- und Architektur-Schritte direkt vorgibt. GitHub beschreibt außerdem, dass solche Runner hochgradig anpassbar sind. :contentReference[oaicite:12]{index=12}
Typischer Ablauf bei GitHub
- Im Repository oder in der Organisation zu Actions und Runners wechseln
- Neuen self-hosted runner anlegen
- Linux und Architektur auswählen
- Die angezeigten Befehle auf Ubuntu ausführen
GitHub Runner als Dienst betreiben
Ein produktiver Runner sollte nicht nur manuell in einer Terminal-Sitzung laufen. Er sollte als Dienst oder zumindest dauerhaft betrieben werden. GitHub beschreibt in seinen Runner-Verwaltungsseiten zusätzliche Möglichkeiten für Skripte vor oder nach Jobs sowie erweiterte Kontrolle über die Laufzeit. Für produktive Umgebungen ist ein Dienstbetrieb fast immer sinnvoll, weil der Runner nach Neustarts automatisch wieder verfügbar sein sollte. :contentReference[oaicite:13]{index=13}
Jenkins Agent unter Ubuntu einrichten
Jenkins verwendet das Konzept von Controller und Agents. Die offizielle Jenkins-Dokumentation erklärt, dass Agents eine Java-Installation und eine Netzwerkverbindung zum Controller brauchen. Das bedeutet: Ein Ubuntu-Agent ist keine isolierte Sonderwelt, sondern ein ausführendes System, das vom Jenkins-Controller gesteuert wird. Jenkins beschreibt Linux als unterstützte Installationsplattform und Agents als zentralen Baustein für Build-Ausführung. :contentReference[oaicite:14]{index=14}
Wichtige Voraussetzungen für Jenkins Agents
- Installiertes Java
- Netzwerkverbindung zum Jenkins-Controller
- Passende Agent-Konfiguration im Jenkins-Interface
Java unter Ubuntu installieren
sudo apt install openjdk-17-jre -y
Die konkret unterstützte Java-Version hängt von der Jenkins-Version und der offiziellen Jenkins-Dokumentation ab. :contentReference[oaicite:15]{index=15}
Benutzer und Rechte für Runner bewusst planen
Ein sehr wichtiger Punkt für DevOps-Profis ist die Benutzer- und Rechtefrage. Ein Runner sollte nicht blind als Root laufen. Viele Aufgaben brauchen zwar erweiterte Rechte oder Docker-Zugriff, aber genau deshalb ist ein bewusst eingerichteter Systembenutzer wichtig. In Lernumgebungen ist es verlockend, einfach alles mit zu vielen Rechten laufen zu lassen. Für produktive Runner ist das aber ein Sicherheitsrisiko. GitLab betont ausdrücklich Sicherheitsaspekte rund um Runner-Infrastruktur, und GitHub hebt hervor, dass selbstgehostete Runner volle Kontrolle, aber damit auch volle Verantwortung bedeuten. :contentReference[oaicite:16]{index=16}
Gute Praxis
- Eigener Systembenutzer für den Runner
- Nur nötige Gruppenrechte vergeben
- Root-Zugriff vermeiden, wenn er nicht wirklich gebraucht wird
- Arbeitsverzeichnisse sauber trennen
Docker für Runner sinnvoll einordnen
Viele CI/CD-Setups arbeiten heute mit Docker, weil Builds und Tests dadurch isolierter laufen. GitLab nennt den Docker-Executor ausdrücklich als typischen Weg und weist darauf hin, dass Docker dafür vorher installiert sein muss. Für Anfänger ist aber wichtig: Docker macht Jobs nicht automatisch sicher oder schnell. Es bringt zusätzliche Komplexität. Deshalb sollten Sie erst die Grundidee des Runners verstehen und dann Docker ergänzen. :contentReference[oaicite:17]{index=17}
Docker unter Ubuntu installieren
sudo apt install docker.io -y
Docker-Dienst prüfen
sudo systemctl status docker
Danach kann der Runner-Benutzer bei Bedarf der Docker-Gruppe hinzugefügt werden, aber nur dann, wenn das wirklich nötig ist.
Runner-Tags, Labels und Zuordnung verstehen
Ein professioneller CI/CD Runner sollte nicht einfach „für alles“ zuständig sein. Tags oder Labels helfen dabei, Jobs gezielt an passende Runner zu schicken. GitLab verwendet Tags für die Zuordnung von Jobs zu Runnern. GitHub nutzt Labels bei self-hosted runners. Genau dadurch können Sie zum Beispiel spezielle Ubuntu-Runner für Docker, Java, Node.js oder Deployments trennen. Das ist für produktive Umgebungen sehr hilfreich. :contentReference[oaicite:18]{index=18}
Typische Tag- oder Label-Ideen
- ubuntu
- docker
- java
- deploy
- high-memory
Sicherheit bei selbstgehosteten Runnern ernst nehmen
Ein Runner führt fremde oder zumindest automatisierte Jobdefinitionen aus. Genau das macht ihn sicherheitskritisch. GitLab betont Sicherheits- und Performance-Gründe für eine Trennung von GitLab-Instanz und Runner-Maschine. GitHub erklärt, dass selbstgehostete Runner Ihnen mehr Kontrolle geben, aber dadurch auch mehr Verantwortung. Für Jenkins gilt dasselbe: Ein Agent ist ein ausführendes System und sollte nicht unnötig viele Rechte haben. Deshalb sollten Runner isoliert, minimal gehalten und sauber überwacht werden. :contentReference[oaicite:19]{index=19}
Wichtige Sicherheitsregeln
- Runner nicht unnötig auf derselben Maschine wie zentrale Plattformen betreiben
- Nur nötige Software installieren
- Regelmäßig Updates einspielen
- Geheimnisse und Tokens sicher speichern
- Runner für unterschiedliche Aufgaben trennen
Logs und Status regelmäßig prüfen
Ein Runner sollte nicht nur installiert, sondern auch beobachtet werden. Gerade wenn Jobs hängen bleiben oder sich nicht registrieren, sind Dienststatus und Logs sehr wichtig. Unter Ubuntu ist systemctl status dafür der erste wichtige Schritt. GitLab Runner, Docker und andere Bausteine sollten regelmäßig geprüft werden, damit Fehler früh sichtbar werden.
Typische Statusprüfungen
sudo systemctl status gitlab-runner
sudo systemctl status docker
Systemlogs prüfen
journalctl -u gitlab-runner
journalctl -u docker
Bei Jenkins-Agents und GitHub-Runnern hängt der genaue Dienstname vom konkreten Setup ab, aber das Grundprinzip bleibt gleich: Status und Logs gehören zur professionellen Runner-Verwaltung.
Typische Fehler bei Ubuntu CI/CD Runnern
Viele Probleme entstehen nicht durch die Plattform selbst, sondern durch kleine Verwaltungsfehler. Gerade Anfänger sollten diese Stolperfallen kennen.
Häufige Fehler
- Runner läuft mit zu vielen Rechten
- Docker wird verwendet, ohne die Sicherheitsfolgen zu verstehen
- Token oder Registrierungsschritte werden falsch übernommen
- Zu viele verschiedene Werkzeuge auf einem einzigen Runner werden gemischt
- Runner wird nicht als Dienst stabil betrieben
- Logs und Status werden bei Fehlern nicht geprüft
Was besser funktioniert
- Klein und klar starten
- Erst einen Runner für eine Plattform sauber einrichten
- Rechte gezielt vergeben
- Tags oder Labels bewusst nutzen
- Runner später nach Aufgaben trennen
Eine sinnvolle Lernstrategie für Anfänger
Auch wenn das Thema „für DevOps-Profis“ klingt, sollten Anfänger schrittweise vorgehen. Zuerst Ubuntu vorbereiten. Danach genau eine Plattform auswählen, zum Beispiel GitLab oder GitHub. Dann den Runner installieren und registrieren. Danach einen einfachen Job testen, der nur eine Ausgabe erzeugt. Erst wenn diese Grundlage funktioniert, sollten Docker, spezielle Tools oder mehrere Runner ergänzt werden.
Empfohlene Reihenfolge
- Ubuntu aktualisieren
- Eine CI/CD-Plattform auswählen
- Runner oder Agent installieren
- Registrierung oder Verbindung sauber abschließen
- Einen einfachen Testjob ausführen
- Danach Docker, Tags oder weitere Werkzeuge ergänzen
Wichtige Befehle im Überblick
Wenn Sie einen Ubuntu CI/CD Runner einrichten für DevOps-Profis möchten, sollten Sie diese Befehle und Muster sicher kennen.
Ubuntu aktualisieren
sudo apt update
sudo apt upgrade -y
GitLab Runner installieren
sudo apt install gitlab-runner -y
GitLab Runner registrieren
sudo gitlab-runner register
Docker installieren
sudo apt install docker.io -y
Docker-Status prüfen
sudo systemctl status docker
Java für Jenkins Agent installieren
sudo apt install openjdk-17-jre -y
GitLab Runner Status prüfen
sudo systemctl status gitlab-runner
Wer diese Grundlagen sauber versteht und praktisch anwendet, kann unter Ubuntu einen sehr nützlichen und professionellen CI/CD-Runner aufbauen. Genau das macht solche Systeme im DevOps-Alltag so wertvoll: Sie verbinden Automatisierung, reproduzierbare Jobs und saubere Infrastruktur zu einer Arbeitsumgebung, in der Builds und Tests nicht nur irgendwie laufen, sondern kontrolliert, stabil und nachvollziehbar ausgeführt werden. :contentReference[oaicite:20]{index=20}
::contentReference[oaicite:21]{index=21}
Konfiguriere Cisco Router & Switches und liefere ein Packet-Tracer-Lab/GNS3
Ich biete professionelle Unterstützung im Bereich Netzwerkkonfiguration und Network Automation für private Anforderungen, Studienprojekte, Lernlabore, kleine Unternehmen sowie technische Projekte. Ich unterstütze Sie bei der Konfiguration von Routern und Switches, der Erstellung praxisnaher Topologien in Cisco Packet Tracer, dem Aufbau und Troubleshooting von GNS3- und EVE-NG-Labs sowie bei der Automatisierung von Netzwerkaufgaben mit Netmiko, Paramiko, NAPALM und Ansible. Kontaktieren Sie mich jetzt – klicken Sie hier.
Meine Leistungen umfassen:
-
Professionelle Konfiguration von Routern und Switches
-
Einrichtung von VLANs, Trunks, Routing, DHCP, NAT, ACLs und weiteren Netzwerkfunktionen
-
Erstellung von Topologien und Simulationen in Cisco Packet Tracer
-
Aufbau, Analyse und Fehlerbehebung von Netzwerk-Labs in GNS3 und EVE-NG
-
Automatisierung von Netzwerkkonfigurationen mit Python, Netmiko, Paramiko, NAPALM und Ansible
-
Erstellung von Skripten für wiederkehrende Netzwerkaufgaben
-
Dokumentation der Konfigurationen und Bereitstellung nachvollziehbarer Lösungswege
-
Konfigurations-Backups, Optimierung bestehender Setups und technisches Troubleshooting
Benötigen Sie Unterstützung bei Ihrem Netzwerkprojekt, Ihrer Simulation oder Ihrer Network-Automation-Lösung? Kontaktieren Sie mich jetzt – klicken Sie hier.

