Bienvenue dans notre série « Premiers pas avec GitLab », conçue pour guider les nouveaux utilisateurs dans la prise en main de la plateforme DevSecOps de GitLab. Après avoir exploré les bases de l'approche CI/CD de GitLab dans notre précédent article, concentrons-nous à présent sur les variables CI/CD afin de tirer pleinement parti de leur potentiel.
Qu’est-ce qu’une variable CI/CD ?
Les variables CI/CD sont des paires clé-valeur dynamiques que vous pouvez définir à différents niveaux (projet, groupe ou instance par exemple) au sein de votre environnement GitLab. Elles permettent de personnaliser les pipelines CI/CD, de centraliser les configurations et de gérer en toute sécurité des données sensibles. Intégrées directement dans le fichier .gitlab-ci.yml comme des espaces réservés pour les valeurs correspondantes, elles facilitent la maintenance, renforcent la sécurité et améliorent la flexibilité des workflows CI/CD.
Quel est le rôle des variables CI/CD ?
Les variables CI/CD offrent de nombreux avantages :
- Flexibilité : adaptez facilement vos pipelines à différents environnements, configurations ou cibles de déploiement sans modifier votre script CI/CD principal.
- Sécurité : stockez en toute sécurité des informations sensibles telles que des clés API, des mots de passe et des tokens sans les exposer dans votre code.
- Maintenabilité : en centralisant les valeurs, elles simplifient la gestion et les mises à jour de votre configuration CI/CD pour qu'elle reste structurée correctement.
- Réutilisation : définies une seule fois, elles peuvent être réutilisées dans plusieurs projets, ce qui favorise la cohérence et réduit les doublons.
Portées des variables CI/CD : projet, groupe et instance
GitLab permet de définir des variables CI/CD à différentes niveaux hiérarchiques du projet, avec un contrôle précis sur leur visibilité, leur portée et leur accessibilité :
- Variables au niveau du projet : elles sont propres à un seul projet et idéales pour stocker des paramètres spécifiques, notamment :
- L'URL de déploiement : définissez des URL distinctes pour les environnements de préproduction et de production.
- Les identifiants de connexion à la base de données : stockez les données de connexion à la base de données afin de pouvoir les utiliser lors d'un test ou d'un déploiement.
- Les feature flags : activez ou désactivez les fonctionnalités à différentes étapes de votre pipeline.
- Exemple : dans le cadre de votre projet
MyWebApp, vous souhaitez stocker l'URL de déploiement de production. Vous pouvez définir une variable au niveau du projet, nomméeDPROD_DEPLOY_URL, avec la valeurhttps://mywebapp.comd'URL de production. - Variables au niveau du groupe : elles sont partagées par tous les projets d'un groupe GitLab. Elles sont utiles pour centraliser des paramètres communs à plusieurs projets, notamment :
- Les clés API de services partagés : stockez-les pour des services tels qu'AWS, Google Cloud ou Docker Hub qui sont utilisés par plusieurs projets au sein du groupe.
- Les paramètres de configuration généraux : définissez des paramètres de configuration communs qui s'appliquent à tous les projets du groupe.
- Exemple : dans votre groupe
Web Apps, vous souhaitez stocker une clé API pour Docker Hub. Vous pouvez définir une variable au niveau du groupe, nomméeDOCKER_HUB_API_KEY, avec la valeur de clé API correspondante. - Variables au niveau de l'instance : elles sont disponibles pour tous les projets d'une instance GitLab et couramment utilisées pour les paramètres généraux qui s'appliquent à l'ensemble de l'entreprise, notamment :
- Le token d'enregistrement de runner par défaut : fournissez un token par défaut pour l'enregistrement de nouveaux runners.
- Les informations sur la licence : stockez les clés de licence des fonctionnalités GitLab ou des outils tiers.
- Les paramètres d'environnement généraux : définissez des variables d'environnement qui doivent être disponibles pour tous les projets.
- Exemple : vous souhaitez définir une image Docker par défaut pour tous les projets de votre instance GitLab. Vous pouvez définir une variable au niveau de l'instance, nommée
DEFAULT_DOCKER_IMAGE, avec la valeurubuntu:latest.
Comment définir des variables CI/CD ?
Pour définir une variable CI/CD, voici comment procéder :
- Cliquez sur les boutons Paramètres > CI/CD de votre projet, groupe ou instance.
- Accédez à la section Variables.
- Cliquez sur Ajouter une variable.
- Saisissez la clé (par exemple,
API_KEY) et la valeur correspondante. - Facultatif : cochez l'option Protéger la variable si elle contient des données sensibles afin de restreindre son utilisation aux pipelines qui s'exécutent sur des branches ou des tags protégés.
- Facultatif : cochez la case Masquer la variable pour masquer sa valeur dans les job logs, afin d'éviter toute exposition accidentelle.
- Cliquez sur Enregistrer la variable.
Comment utiliser des variables CI/CD ?
Pour utiliser une variable CI/CD dans votre fichier .gitlab-ci.yml, faites simplement précéder le nom de la variable du symbole $ :
deploy_job:
script:
- echo "Deploying to production..."
- curl -H "Authorization: Bearer $API_KEY" https://api.example.com/deploy
Comment utiliser les variables CI/CD prédéfinies dans GitLab ?
GitLab met à disposition un ensemble de variables CI/CD prédéfinies que vous pouvez utiliser dans vos pipelines CI/CD. Celles-ci fournissent des informations contextuelles sur le pipeline, le job, le projet en cours, et bien plus encore.
Voici les variables plus couramment utilisées :
$CI_COMMIT_SHA: SHA de validation qui déclenche le pipeline$CI_PROJECT_DIR: répertoire dans lequel le projet est cloné$CI_PIPELINE_ID: ID du pipeline en cours$CI_ENVIRONMENT_NAME: nom de l'environnement de déploiement cible (le cas échéant)
Bonnes pratiques pour l'utilisation des variables CI/CD
- Gérez en toute sécurité les variables sensibles : utilisez des variables protégées et masquées pour stocker les clés API, les mots de passe et tout autre secret.
- Évitez de coder en dur les valeurs : stockez les valeurs de configuration dans des variables afin de renforcer la flexibilité et la maintenance de vos pipelines.
- Organisez vos variables : utilisez des noms explicites et regroupez les variables par usage pour faciliter leur gestion.
- Choisissez la portée appropriée : définissez vos variables au niveau du projet, groupe ou instance en fonction de leur utilisation prévue et de leur visibilité.
Tirez parti de la puissance des variables CI/CD
Les variables CI/CD sont un outil puissant pour personnaliser et sécuriser vos pipelines GitLab. En maîtrisant leur fonctionnement et en comprenant leurs différentes portées, vous pouvez créer des workflows plus flexibles, plus faciles à maintenir et plus efficaces.
Prêt à passer à l’action ? Commencez à utiliser les variables CI/CD dès aujourd'hui et profitez d'un essai gratuit de GitLab Ultimate avec Duo Enterprise.
Articles de la série « Premiers pas avec GitLab »
Découvrez les autres articles de notre série « Premiers pas avec GitLab » :





