Configurer les GitLab Runners comme moteurs de votre CI/CD

Installez, enregistrez et optimisez vos GitLab Runners pour exécuter efficacement vos jobs de test automatisés.

Configurer les GitLab Runners : Le moteur de vos automatisations

Le moteur de vos automatisations

Un GitLab Runner est une instance d'exécution qui traite les tâches (jobs) envoyées par GitLab. Comme nous l'avons vu précédemment, GitLab est le "cerveau" qui stocke le code et les Runners sont les bras qui compilent, testent et déploient vos applications.

De nos jours, la flexibilité est totale : vous pouvez installer des Runners sur vos propres serveurs (Ubuntu), sur des machines Windows, ou utiliser des instances éphémères dans le cloud. Une fois installé, un Runner doit être enregistré auprès de votre instance GitLab pour commencer à travailler.

Information importante

Pour rappel, nous avons déjà configuré les Runners lors de la mise en place initiale de notre environnement GitLab. Si vous n'avez pas encore effectué cette installation ou si votre Runner n'est pas actif, je vous invite à revenir sur les chapitres précédents pour finaliser cette étape avant de poursuivre.

Types de Runners : Partagés vs Spécifiques

Selon vos besoins techniques et de sécurité, vous pouvez choisir entre deux grandes catégories de Runners.

Les Runners Partagés (Shared Runners)

Ces machines sont disponibles pour tous les projets de votre instance GitLab. Ils sont parfaits pour les tâches génériques (tests unitaires, analyse de code) qui ne nécessitent pas de configuration matérielle particulière. Ils permettent de centraliser la maintenance : une seule mise à jour du Runner profite à toute l'équipe.

Les Runners Spécifiques (Specific Runners)

Ils sont dédiés à un seul projet. C'est le choix idéal si votre application nécessite des dépendances lourdes, un accès matériel spécifique (GPU) ou des clés de sécurité que vous ne souhaitez pas partager. Ils fonctionnent sur le principe FIFO (First In, First Out) : le premier job arrivé est le premier servi.

Vérifier l'état d'un Runner enregistré

Information

Ces commandes de diagnostic doivent être tapées directement sur la machine physique (ou virtuelle) qui héberge le Runner, et non sur votre serveur GitLab principal.

Pour vous assurer que le service est bien actif et prêt à recevoir des ordres, utilisez la commande suivante :

gitlab-runner status

Résultat :

Runtime platform                                    arch=amd64 os=linux pid=4521 revision=de7731d1 version=17.10.0
gitlab-runner: Service is running

Si vous voulez voir tous les exécuteurs enregistrés sur cette machine spécifique, listez-les avec :

gitlab-runner list

Résultat :

Listing configured runners                          ConfigFile=/etc/gitlab-runner/config.toml
Runner-Production-01                                Executor=docker Token=glrt-tXy87PaL URL=https://gitlab.example.com

Le conseil du SysAdmin

Si le statut affiche Service is running, cela signifie que votre "ouvrier" est bien réveillé. Si vous voulez vérifier s'il est bien connecté au "cerveau", c'est dans l'interface web de GitLab (Settings > CI/CD > Runners) qu'il faudra regarder si la pastille est verte.

Verrouiller un Runner spécifique

Pour éviter qu'un Runner dédié ne soit activé par erreur sur d'autres projets, vous pouvez le "verrouiller".

Rendez-vous dans votre projet, puis dans Settings > CI/CD. Dépliez la section Runners. Vous y verrez vos Runners activés. Cliquez sur l'icône du crayon (éditer) à côté du Runner concerné.

Édition d'un Runner dans GitLab

Sur l'écran de configuration, cochez l'option Lock to current projects et validez avec Save changes. Ce Runner ne pourra désormais plus être assigné à un autre dépôt sans une action manuelle de votre part.

Option de verrouillage du Runner

Sécurité : Les Runners Protégés (Protected)

De nos jours, la sécurité des déploiements est prioritaire. Un Runner Protégé ne peut exécuter des jobs que sur des branches elles-mêmes protégées, comme la branche main.

C'est une protection cruciale : cela empêche un utilisateur malveillant de créer une branche de test pour tenter d'extraire des secrets de production (mots de passe, clés d'API) via le Runner. Pour l'activer, suivez la même procédure d'édition que pour le verrouillage et cochez Protected.

Activation du mode Protected sur un Runner

"Un Runner protégé est le gardien de votre branche main"

Qu'est-ce qu'une branche protégée ?

Par défaut, n'importe quel utilisateur ayant le rôle Developer peut pousser du code ou supprimer une branche sur un dépôt. Dans un contexte professionnel, laisser la branche principale (souvent main) sans surveillance est un risque majeur pour la stabilité de la production.

Une branche protégée est une branche sur laquelle GitLab applique des restrictions de sécurité strictes. Elle permet de garantir que :

  • Le Push direct est interdit : Personne ne peut envoyer de code directement sur la branche sans passer par une Merge Request validée.
  • La suppression est impossible : Même par erreur, la branche ne peut pas être effacée du serveur.
  • Le contrôle des fusions : Seuls les utilisateurs ayant le rôle Maintainer (ou des rôles spécifiques autorisés) peuvent valider l'intégration du code.

Comment activer la protection d'une branche ?

GitLab protège généralement la branche par défaut lors de la création du projet, mais vous pouvez configurer ces règles manuellement :

  1. Rendez-vous dans votre projet GitLab.
  2. Dans le menu latéral gauche, allez dans Settings > Repository.
  3. Cherchez la section Protected branches et cliquez sur le bouton Expand.
  4. Sélectionnez la branche à protéger (ex: main ou develop).
  5. Définissez qui a le droit de Merge et qui a le droit de Push.
  6. Cliquez sur le bouton Protect pour valider.
Activer les branches protégées

"Activer les branches protégées"

Configurer et utiliser les Tags GitLab Runners

Pourquoi utiliser des Tags ?

Dans une infrastructure DevOps complète, vous disposez souvent de plusieurs Runners avec des capacités différentes. Les Tags (étiquettes) sont le mécanisme qui permet de faire correspondre un job spécifique avec le Runner le plus adapté.

Sans tags, GitLab envoie les jobs au premier Runner disponible qui accepte les jobs sans étiquette, ce qui peut mener à des échecs.

Comment configurer des Tags sur un Runner ?

La gestion des tags a radicalement changé. Elle se fait désormais en amont, directement depuis l'interface web de GitLab, avant d'enregistrer physiquement votre machine :

  1. Création du Runner sur GitLab :
    • Allez dans Settings > CI/CD > Runners.
    • Cliquez sur le bouton bleu New project runner.
    • Dans la section Tags, saisissez vos mots-clés (ex: docker, linux).
    • Cochez éventuellement Run untagged jobs si vous voulez qu'il accepte aussi les tâches sans étiquette.
    • Cliquez sur Create runner.
  2. Enregistrement sur votre machine : GitLab vous fournira alors une commande toute prête avec un jeton (token). Copiez-la et collez-la dans le terminal de votre serveur (ou PC Windows). Les tags définis à l'étape 1 y seront automatiquement rattachés.

Information

Pour rappel, nous avons déjà effectué cette procédure lors de l'installation initiale au début de ce cours. Si votre Runner est déjà en ligne, vous pouvez modifier ses tags à tout moment en cliquant sur l'icône du crayon dans la liste de vos Runners sur GitLab.

Comment utiliser les Tags dans votre pipeline ?

Une fois vos Runners étiquetés, vous devez indiquer à votre fichier .gitlab-ci.yml quel Runner utiliser pour chaque job grâce au mot-clé tags.

Exemple de configuration YAML :

stages:
  - test
  - deploy

job_linux:
  stage: test
  tags:
    - docker  # Ce job cherchera un Runner possédant le tag "docker"
  script:
    - echo "Exécution sur Linux Docker"

job_windows:
  stage: test
  tags:
    - windows # Ce job attendra qu'un Runner Windows soit disponible
  script:
    - echo "Exécution sur serveur Windows"

Règle de sélection

Pour qu'un Runner accepte un job, il doit posséder tous les tags listés dans le job. Si vous mettez les tags "docker" et "linux", un Runner qui n'a que le tag "docker" ignorera la tâche.

Gérer les jobs sans étiquettes (Untagged)

Par défaut, les jobs dans votre fichier .gitlab-ci.yml peuvent utiliser des tags pour cibler un Runner précis. Mais que faire si un job n'a pas de tag ?

Vous pouvez configurer un Runner pour qu'il accepte de prendre en charge ces jobs "orphelins". Dans l'écran d'édition du Runner, cochez l'option Run untagged jobs.

Option Run untagged jobs

"Utile pour s'assurer que tous les petits jobs de test sont bien exécutés"

Le conseil du SysAdmin

Il est recommandé de toujours utiliser des Tags pour vos Runners. Cela permet de piloter précisément quel environnement de travail est utilisé pour chaque étape de votre pipeline.

Conclusion

La configuration des Runners est le dernier maillon technique pour rendre votre forge logicielle totalement autonome. Vous savez maintenant isoler vos ressources, sécuriser vos déploiements sur main et gérer la distribution des tâches.

De plus, l'utilisation rigoureuse des Tags est une pratique de "Clean CI". Elle garantit que chaque tâche s'exécute dans l'environnement prévu.

Votre infrastructure est prête. Dans le prochain chapitre, nous allons voir comment passer à la vitesse supérieure avec les usages avancés de GitLab CI.

Espace commentaire

Écrire un commentaire

Rejoignez la discussion

Vous devez être connecté pour poster un message.

29 commentaires

ajdaini-hatim
Auteur Rédacteur Secouriste Actif
Avatar de ajdaini-hatim
ajdaini-hatim
Auteur Rédacteur Secouriste Actif

Vérifie bien que tes tags dans le fichier .gitlab-ci.yml correspondent exactement à ceux configurés sur ton Runner. Souviens-toi de la règle : le Runner doit posséder tous les tags demandés.

17/05/2026 à 11:57
aime33
Membre
Avatar de aime33
aime33
Membre

Hello. J'ai un souci de tag. Mon job reste en "pending" indéfiniment alors que mon runner est bien actif sur l'interface GitLab.

17/05/2026 à 04:42
ajdaini-hatim
Auteur Rédacteur Secouriste Actif
Avatar de ajdaini-hatim
ajdaini-hatim
Auteur Rédacteur Secouriste Actif

T'as bien vérifié les logs du service ? Tente un sudo systemctl status gitlab-runner pour voir si le daemon est en vie.

17/05/2026 à 00:29
patrick18
Membre
Avatar de patrick18
patrick18
Membre

J'ai un souci avec mon runner. Quand je tape gitlab-runner status, il me dit que le service n'est pas lancé alors que je viens de l'installer sur mon Ubuntu.

16/05/2026 à 19:32

Rejoindre la communauté

Recevoir les derniers articles gratuitement en créant un compte !

S'inscrire