Site icon bintorosoft.com

Linux Server Setup für DevOps: Git, CI Runner und Registry

Close up human hand is playing Online Game computer using keyboard in home

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:

Git Server installieren

Git ist das Rückgrat der Versionsverwaltung. Für private Repositories eignen sich:

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:

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

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:

Benötigen Sie Unterstützung bei Ihrem Netzwerkprojekt, Ihrer Simulation oder Ihrer Network-Automation-Lösung? Kontaktieren Sie mich jetzt – klicken Sie hier.

Exit mobile version