Willkommen zu unserer Serie „Erste Schritte mit GitLab“, in der wir Neueinsteiger(inne)n helfen, sich mit der DevSecOps-Plattform von GitLab vertraut zu machen.
In einem früheren Artikel haben wir uns mit GitLab CI/CD beschäftigt. Jetzt tauchen wir tiefer in die Welt der CI/CD-Variablen ein und erschließen ihr volles Potenzial.
Inhaltsverzeichnis
- Was sind CI/CD-Variablen?
- Warum sind CI/CD-Variablen wichtig?
- Geltungsbereiche von CI/CD-Variablen: Projekt, Gruppe und Instanz
- Definieren von CI/CD-Variablen
- Verwenden von CI/CD-Variablen
- Vordefinierte CI/CD-Variablen
- Bewährte Methoden
- Entdecke die Leistungsfähigkeit von Variablen
- Reihe „Erste Schritte mit GitLab"
Was sind CI/CD-Variablen?
CI/CD-Variablen sind dynamische Schlüssel-Wert-Paare, die du auf verschiedenen Ebenen in deiner GitLab-Umgebung definieren kannst (z. B. Projekt, Gruppe oder Instanz). Diese Variablen fungieren als Platzhalter für Werte, die du in deiner .gitlab-ci.yml
-Datei verwenden kannst, um deine Pipelines anzupassen, vertrauliche Informationen sicher zu speichern und deine CI/CD-Konfiguration besser zu pflegen.
Warum sind CI/CD-Variablen wichtig?
CI/CD-Variablen bieten zahlreiche Vorteile:
- Flexibilität – Du kannst deine Pipelines leicht an verschiedene Umgebungen, Konfigurationen oder Bereitstellungsziele anpassen, ohne dein zentrales CI/CD-Skript zu ändern.
- Sicherheit – Speichere vertrauliche Informationen wie API-Schlüssel, Passwörter und Token sicher und verhindere so, dass sie in deinem Code offengelegt werden.
- Wartbarkeit – Verwalte deine CI/CD-Konfiguration sauber und übersichtlich, indem du Werte in Variablen zentralisierst, was Aktualisierungen und Änderungen erleichtert.
- Wiederverwendbarkeit – Definiere Variablen einmal und verwende sie in mehreren Projekten wieder, um die Konsistenz zu fördern und doppelte Arbeit zu vermeiden.
Geltungsbereiche von CI/CD-Variablen: Projekt, Gruppe und Instanz
Mit GitLab kannst du CI/CD-Variablen mit unterschiedlichen Geltungsbereichen definieren und so ihre Sichtbarkeit und Zugänglichkeit steuern:
-
Variablen auf Projektebene – Diese Variablen sind spezifisch für ein einzelnes Projekt und eignen sich ideal zum Speichern von projektspezifischen Einstellungen, wie zum Beispiel:
- Bereitstellungs-URLs: Definiere unterschiedliche URLs für Staging- und Produktivumgebungen.
- Datenbank-Zugangsdaten: Speichere Details zur Datenbankverbindung für Tests oder die Bereitstellung.
- Feature-Flags: Aktiviere oder deaktiviere Funktionen in verschiedenen Phasen deiner Pipeline.
- Beispiel: Du hast ein Projekt mit dem Namen „MyWebApp“ und möchtest die URL für die Bereitstellung speichern. Du erstellst eine Variable auf Projektebene mit dem Namen
DPROD_DEPLOY_URL
und dem Werthttps://mywebapp.com
.
-
Variablen auf Gruppenebene – Diese Variablen werden von allen Projekten innerhalb einer GitLab-Gruppe gemeinsam genutzt. Sie sind nützlich für Einstellungen, die für mehrere Projekte gleich sind, wie z. B.:
- API-Schlüssel für gemeinsam genutzte Dienste: Speichere API-Schlüssel für Dienste wie AWS, Google Cloud oder Docker Hub, die von mehreren Projekten innerhalb der Gruppe genutzt werden.
- Globale Konfigurationseinstellungen: Lege gemeinsame Konfigurationsparameter fest, die für alle Projekte in der Gruppe gelten.
- Beispiel: Du hast eine Gruppe mit dem Namen „Web-Apps“ und möchtest einen API-Schlüssel für Docker Hub speichern. Du erstellst eine Variable auf Gruppenebene mit dem Namen
DOCKER_HUB_API_KEY
und dem entsprechenden API-Schlüsselwert.
-
Variablen auf Instanzebene – Diese Variablen sind für alle Projekte auf einer GitLab-Instanz verfügbar. Sie werden in der Regel für globale Einstellungen verwendet, die für das gesamte Unternehmen gelten, wie z. B.:
- Standard-Token für die Registrierung von Runnern: Lege ein Standard-Token für die Registrierung neuer Runner (nur in englischer Sprache verfügbar) fest.
- Lizenzinformationen: Hier kannst du Lizenzschlüssel für GitLab-Funktionen oder Tools von Drittanbietern speichern.
- Globale Umgebungseinstellungen: Lege Umgebungsvariablen fest, die für alle Projekte verfügbar sein sollen.
- Beispiel: Du möchtest ein Standard-Docker-Image für alle Projekte in deiner GitLab-Instanz festlegen. Du erstellst eine Variable auf Instanzebene mit dem Namen
DEFAULT_DOCKER_IMAGE
und dem Wertubuntu:latest
.
Definieren von CI/CD-Variablen
So definierst du eine CI/CD-Variable:
- Klicke auf die Schaltflächen Einstellungen > CI/CD für dein Projekt, deine Gruppe oder deine Instanz.
- Gehe zum Abschnitt Variablen.
- Klicke auf Variable hinzufügen.
- Gib den Schlüssel (z. B.
API_KEY
) und den Wert ein. - Aktiviere optional das Kontrollkästchen Variable schützen, wenn es sich um vertrauliche Informationen handelt. Dadurch wird sichergestellt, dass die Variable nur für Pipelines verfügbar ist, die auf geschützten Branches oder Tags ausgeführt werden.
- Aktiviere optional das Kontrollkästchen Variable maskieren, um den Wert der Variable in den Job-Protokollen auszublenden und eine versehentliche Offenlegung zu verhindern.
- Klicke auf Variable speichern.
Verwenden von CI/CD-Variablen
Um eine CI/CD-Variable in deiner .gitlab-ci.yml
-Datei zu verwenden, stellst du dem Variablennamen einfach $
voran:
deploy_job:
script:
- echo "Deploying to production..."
- curl -H "Authorization: Bearer $API_KEY" https://api.example.com/deploy
Vordefinierte CI/CD-Variablen
GitLab stellt vordefinierte CI/CD-Variablen (nur in englischer Sprache verfügbar) bereit, die du in deinen Pipelines verwenden kannst. Diese Variablen liefern Informationen über die aktuelle Pipeline, den Job, das Projekt und mehr.
Einige häufig verwendete vordefinierte Variablen sind:
$CI_COMMIT_SHA
: Der Commit-SHA der aktuellen Pipeline.$CI_PROJECT_DIR
: Das Verzeichnis, in dem das Projekt geklont wird.$CI_PIPELINE_ID
: Die ID der aktuellen Pipeline.
*$CI_ENVIRONMENT_NAME
: Der Name der Umgebung, in der bereitgestellt wird (falls zutreffend).
Bewährte Methoden
- Verwalte vertrauliche Variablen sicher: Verwende geschützte und maskierte Variablen für API-Schlüssel, Passwörter und andere vertrauliche Informationen.
- Vermeide das Hardcoding von Werten: Verwende Variablen zum Speichern von Konfigurationswerten, um deine Pipelines flexibler und wartbarer zu machen.
- Organisiere deine Variablen: Verwende aussagekräftige Namen und gruppiere verwandte Variablen, um sie besser zu organisieren.
- Verwende den richtigen Geltungsbereich: Wähle den richtigen Geltungsbereich (Projekt, Gruppe oder Instanz) für deine Variablen aus, je nach Verwendungszweck und Sichtbarkeit.
Entdecke die Leistungsfähigkeit von Variablen
CI/CD-Variablen sind ein leistungsstarkes Tool zur Anpassung und Sicherung deiner GitLab-Pipelines. Wenn du verstanden hast, wie Variablen funktionieren und ihre unterschiedlichen Geltungsbereiche kennst, kannst du flexiblere, wartbarere und effizientere Workflows erstellen.
Wir hoffen, dass diese Informationen für dich hilfreich waren und du jetzt gut gerüstet bist, um die Möglichkeiten von GitLab für deine Entwicklungsprojekte zu nutzen.
Lege jetzt los mit CI/CD-Variablen mit einer kostenlosen, 60-tägigen Testversion von GitLab Ultimate mit Duo Enterprise.
Reihe „Erste Schritte mit GitLab“
Lies weitere Artikel in unserer Serie „Erste Schritte mit GitLab“: