GitLab Advanced - Anwendung von CI und DevOps Integrationen
(TDE-GITB)
Dieser GitLab Kurs bietet den erweiterten Einstieg in Git Workflows und die Hosting-Plattform GitLab. GitLab kann als freie DevOps-Plattform mehr, als nur Code für die Versionskontrolle zu hosten. In diesem Kurs geht es um CI/CD Pipelines und wie diese mithilfe von GitLab abgebildet werden. Das Ausführen von CI/CD-Jobs geschieht auf GitLab Runnern, deren Funktionsweise und Konfiguration vorgestellt wird. Build- und Deployment-Prozesse werden anhand von Docker und Kubernetes erläutert, da GitLab für diese Tools automatisierte Schnittstellen bietet. Das Gelernte wird in einer Labumgebung praktisch umgesetzt.
Kursinhalt
- Aufbau von CI/CD Pipelines in GitLab
- Job Keywords
- Variablen, Artefakte & Caching
- Pipeline-Typen und Trigger
- GitLab Runner – Charakteristika, Typen & Konfiguration
- Build & Deployment via Docker & Kubernetes
- Vorstellung und Unterscheidung von Git Workflows
Zielgruppe
Der Kurs richtet sich an alle, die bereits Git-Kenntnisse vorweisen können und sich nun den erweiterten Einstieg in die GitLab-Plattform wünschen.
Voraussetzungen
Grundlegende Kenntnisse zum Umgang mit Git und GitLab werden vorausgesetzt. Diese können im Grundlagenkurs Git und GitLab – Bausteine für CI/CD erworben werden.
Inhaltsverzeichnis
1 CI/CD mit GitLab - Grundlagen
- 1.1 DevOps
- 1.1.1 DevSecOps via GitLab
- 1.1.2 Eine Übersicht zu Beginn
- 1.2 Git & GitLab
- 1.2.1 Arbeiten Lokal-Remote
- 1.2.2 Der GitLab-Server
- 1.2.3 CI/CD Workflow von GitLab
- 1.3 Basics zu Docker & Kubernetes
- 1.3.1 App klassisch vs. App als Container
- 1.3.2 Docker-Workflow
- 1.3.3 Kubernetes
- 1.4 Basics zu Testing
- 1.4.1 Beispiel: Unit-Tests
2 Pipelines
- 2.1 Was ist eine Pipeline?
- 2.2 Stages & Jobs
- 2.2.1 Job-Ausführung
- 2.2.2 Regeln & Bedingungen für Jobs
- 2.3 Variablen
- 2.3.1 Vordefinierte Variablen
- 2.3.2 Variablen in der GitLab-UI
- 2.3.3 Variablen in der Pipeline-Datei
- 2.4 Artifacts
- 2.4.1 Dependencies von Artifacts
- 2.5 Caching
- 2.5.1 Cache-Key
- 2.6 Modularer Pipeline Code
- 2.6.1 Default - Keyword
- 2.6.2 YAML Anchors & Aliases
- 2.6.3 Reference Tag
- 2.6.4 include als globales Keyword
- 2.7 Pipeline-Laufzeit optimieren
- 2.8 Pipelines Triggern
- 2.8.1 Multi-Project Pipelines
- 2.8.2 Externe Pipelines triggern
- 2.9 API-Calls
- 2.9.1 Webhooks
- 2.10 Merged Results Pipelines
- 2.10.1 Merge Request Event Pipeline
3 GitLab Runner
- 3.1 GitLab Runner im Überblick
- 3.1.1 Kommunikation
- 3.1.2 Shared Runner
- 3.1.3 Project Runner
- 3.2 Konfiguration - config.toml
- 3.3 Executors
- 3.3.1 Shell Executor
- 3.3.2 SSH Executor
- 3.3.3 Docker Executor
- 3.3.4 Kubernetes Executor
- 3.3.5 VirtualBox Executor
- 3.4 Troubleshoot GitLab Runner
4 Deployment via Docker & Kubernetes
- 4.1 GitLab Container Registry
- 4.1.1 Authentisierung zur Registry
- 4.1.2 Build & Push eines Image
- 4.1.3 Pull eines Image
- 4.2 GitLab Kubernetes Agent
- 4.2.1 Installation & Registrierung
- 4.2.2 Push-Based Deployment
- 4.3 GitOps
- 4.3.1 GitOps mit Flux
- 4.3.2 GitOps mit GitLab Agent
- 4.4 Environments
- 4.5 Releases
- 4.6 Monitoring
- 4.6.1 Grafana
- 4.6.2 ELK-Stack
5 Git Workflows
- 5.1 Zentralisierter Workflow
- 5.2 Feature Branching
- 5.3 Personal Branching
- 5.4 GitFlow
- 5.5 GitLab Flow
- 5.5.1 Release Branches in GitLab Flow