Ein DevOps-fähiger Linux Server bildet die Grundlage für moderne Softwareentwicklung und Continuous Integration. Mit einem zentralen Git-Server, einem CI/CD-Runner und einer Container-Registry lassen sich Projekte effizient versionieren, automatisiert testen und bereitstellen. In diesem Tutorial zeigen wir Schritt für Schritt, wie Sie einen Linux Server für DevOps-Workflows aufsetzen und absichern.
Systemvoraussetzungen
Für ein stabiles DevOps-Setup empfehlen sich:
- Linux-Distribution: Ubuntu 22.04 LTS oder CentOS 9 Stream
- CPU: mindestens 4 Kerne
- RAM: 8 GB oder mehr
- Speicher: mindestens 100 GB für Repositories, Container-Images und Builds
- Netzwerk: feste IP-Adresse, Firewall konfiguriert
- Zugang: SSH-Schlüssel-basierte Authentifizierung
Git Server installieren
Git ist das Rückgrat der Versionsverwaltung. Für private Repositories eignen sich:
- Gitea: leichtgewichtig, webbasierte Oberfläche
- GitLab Community Edition: umfangreiche Funktionen inkl. CI/CD
Gitea Installation (Ubuntu)
sudo adduser --system --shell /bin/bash --gecos 'Git Version Control' --group --disabled-password --home /home/git git
wget -O gitea https://dl.gitea.io/gitea/1.21.6/gitea-1.21.6-linux-amd64
chmod +x gitea
sudo mv gitea /usr/local/bin/
sudo nano /etc/systemd/system/gitea.service
Inhalt:
[Unit]
Description=Gitea
After=syslog.target
After=network.target
[Service]
User=git
Group=git
WorkingDirectory=/home/git
ExecStart=/usr/local/bin/gitea web --config /home/git/custom/conf/app.ini
Restart=always
Environment=USER=git HOME=/home/git
[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl enable gitea
sudo systemctl start gitea
CI/CD Runner einrichten
Für automatische Builds und Tests eignet sich ein Runner wie GitLab Runner oder Jenkins Agent. Beispiel: GitLab Runner:
curl -L --output gitlab-runner-linux-amd64 https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-linux-amd64
chmod +x gitlab-runner-linux-amd64
sudo mv gitlab-runner-linux-amd64 /usr/local/bin/gitlab-runner
sudo useradd --comment 'GitLab Runner' --create-home gitlab-runner --shell /bin/bash
sudo gitlab-runner install --user=gitlab-runner --working-directory=/home/gitlab-runner
sudo gitlab-runner start
Runner registrieren
sudo gitlab-runner register
Abfrage: URL, Token, Beschreibung, Tags, Executor (z.B. shell oder docker)
Container Registry aufsetzen
Für Docker-Images innerhalb der Organisation kann eine private Registry genutzt werden. Beispiel: Docker Registry:
sudo apt-get update
sudo apt-get install -y docker.io
sudo docker run -d -p 5000:5000 --name registry --restart always
-v /var/lib/registry:/var/lib/registry registry:2
Registry absichern
SSL/TLS und Authentifizierung sind Pflicht:
mkdir -p /certs
# Zertifikate erstellen oder Let's Encrypt nutzen
sudo docker run -d -p 5000:5000 --name registry-secure
-v /var/lib/registry:/var/lib/registry
-v /certs:/certs
-e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/domain.crt
-e REGISTRY_HTTP_TLS_KEY=/certs/domain.key
registry:2
Firewall und Zugriffskontrolle
Nur notwendige Ports öffnen:
- Git/Gitea: 22 (SSH), 3000 (Webinterface)
- CI Runner: abhängig vom Executor, z.B. SSH oder Docker Socket
- Registry: 5000 (HTTPS)
sudo ufw allow 22
sudo ufw allow 3000
sudo ufw allow 5000/tcp
sudo ufw enable
Backups und Persistenz
Daten von Git-Servern, Runnern und Registry regelmäßig sichern:
tar czvf gitea-backup.tar.gz /home/git
tar czvf registry-backup.tar.gz /var/lib/registry
# Optional: Runner-Konfiguration sichern
tar czvf runner-backup.tar.gz /home/gitlab-runner
Best Practices
- Services als eigene Benutzer laufen lassen
- SSH-Schlüssel-basierte Authentifizierung für Git und Runner
- TLS für Registry verpflichtend
- Automatische Updates und Patches einplanen
- Monitoring der Server-Ressourcen und Logs
- Regelmäßige Backups aller Konfigurationen und Daten
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.











