Configuration du GitLab Runner¶
Ce document explique comment enregistrer et configurer le GitLab Runner sur ProbatioVault-IA-Server.
Prérequis¶
- GitLab Runner installé (via
scripts/bootstrap.sh) - Token d'enregistrement du projet GitLab
- Accès SSH au serveur
Obtenir le token d'enregistrement¶
- Aller sur GitLab : https://gitlab.com/probatiovault/probatiovault-ia-server
- Naviguer vers Settings → CI/CD → Runners
- Cliquer sur New project runner
- Configurer :
- Tags :
ia-server,shell,gpu - Run untagged jobs : ☑ (coché)
- Description : ProbatioVault IA Server
- Copier le token généré (commence par
glrt-)
Enregistrer le runner¶
Se connecter au serveur et exécuter :
ssh ProbatioVault-IA-Server
sudo gitlab-runner register \
--url https://gitlab.com/ \
--registration-token glrt-VOTRE_TOKEN_ICI \
--description "ProbatioVault IA Server" \
--tag-list "ia-server,shell,gpu" \
--executor shell \
--shell bash
Vérifier l'installation¶
Vérifier le service systemd¶
# Vérifier que le service est actif
sudo systemctl status gitlab-runner
# Démarrer le service si nécessaire
sudo systemctl start gitlab-runner
# Activer le démarrage automatique
sudo systemctl enable gitlab-runner
# Redémarrer le service
sudo systemctl restart gitlab-runner
Vérifier le runner GitLab¶
# Lister les runners enregistrés
sudo gitlab-runner list
# Vérifier le statut du runner
sudo gitlab-runner status
# Vérifier la connexion avec GitLab
sudo gitlab-runner verify
# Voir les logs en temps réel
sudo journalctl -u gitlab-runner -f
# Voir les logs en mode debug
sudo gitlab-runner --debug run
Statut attendu¶
Quand tout fonctionne correctement :
● gitlab-runner.service - GitLab Runner
Loaded: loaded (/etc/systemd/system/gitlab-runner.service; enabled; preset: enabled)
Active: active (running) since ...
Main PID: xxxxx (gitlab-runner)
Le runner devrait apparaître "Online" dans GitLab après quelques secondes (polling automatique).
Configuration avancée¶
Le fichier de configuration est dans /etc/gitlab-runner/config.toml :
concurrent = 1
check_interval = 0
[session_server]
session_timeout = 1800
[[runners]]
name = "ProbatioVault IA Server"
url = "https://gitlab.com/"
token = "VOTRE_TOKEN"
executor = "shell"
[runners.custom_build_dir]
[runners.cache]
[runners.cache.s3]
[runners.cache.gcs]
[runners.cache.azure]
Permissions¶
Le runner s'exécute avec l'utilisateur gitlab-runner. Pour que Terraform/Ansible puissent fonctionner :
# Ajouter gitlab-runner au groupe sudo (si nécessaire)
sudo usermod -aG sudo gitlab-runner
# Configurer sudo sans mot de passe pour Terraform/Ansible (optionnel, à évaluer)
# Ou utiliser des credentials via Vault
Sécurité¶
- Le runner est configuré avec l'executor
shell(accès direct au système) - Les jobs s'exécutent avec l'utilisateur
gitlab-runner - Les credentials sensibles (AWS, Vault) doivent être récupérés depuis HashiCorp Vault
- Ne jamais commiter de secrets dans le dépôt Git
Désactiver/supprimer le runner¶
# Désactiver temporairement
sudo gitlab-runner stop
# Supprimer un runner
sudo gitlab-runner unregister --name "ProbatioVault IA Server"
# Supprimer tous les runners
sudo gitlab-runner unregister --all-runners
Dépannage¶
Le runner n'apparaît pas dans GitLab¶
- Vérifier que le token est correct
- Vérifier la connectivité réseau :
curl https://gitlab.com - Relancer le runner :
sudo gitlab-runner restart
Les jobs échouent avec "permission denied"¶
- Vérifier les permissions du répertoire de build
- Vérifier que gitlab-runner a les droits nécessaires
- Vérifier les credentials Vault
Les jobs Terraform échouent¶
- Vérifier que Terraform est dans le PATH
- Vérifier les credentials AWS (via Vault)
- Vérifier que le backend Terraform est configuré