Aller au contenu principal

Terminaux web interactifs

info

Cette documentation reprend en partie la documentation GitLab Interactive web terminals. N'hésitez pas à consulter cette dernière pour en savoir plus.

Les terminaux Web interactifs vous permettent d'accéder à un terminal dans GitLab afin d'exécuter des commandes ponctuelles dans vos pipelines de CI. Vous pouvez considérer cela comme une méthode de débogage avec SSH, mais effectuée directement depuis la page des jobs.

Débogage d'une tâche en cours d'exécution

Parfois, lorsqu'une tâche est en cours d'exécution, les choses ne se passent pas comme prévu. Il serait utile de disposer d'un shell pour faciliter le débogage. Lorsqu'une tâche est en cours d'exécution, le panneau de droite affiche un bouton de débogage ( external-link) qui ouvre le terminal pour la tâche en cours.

remarque

Seule la personne qui a lancé une tâche peut la déboguer.

GitLab CI job with web terminalGitLab CI job with web terminal

Lorsque cette option est sélectionnée, un nouvel onglet s'ouvre sur la page du terminal où vous pouvez accéder au terminal et saisir des commandes comme dans un shell standard.

GitLab CI web terminalGitLab CI web terminal
attention

L'exécuteur Docker cesse de fonctionner une fois les commandes de la section script terminées. Le terminal se déconnecte automatiquement et n'attend pas que l'utilisateur ait terminé. Consultez cette issue pour obtenir des informations sur l'amélioration de ce comportement.

Configuration

Par défaut, cette option est désactivée et nécessite :

  • Un changement de configuration au niveau du Runner
  • L'autorisation de requêtes sortantes dans la web UI de GitLab

Configuration du GitLab Runner

Runner managés par adista

Si vos runners sont managés par adista, il vous suffit d'ouvrir un ticket pour nous en faire la demande et nous confirmer que vous avez bien configuré les requêtes sortantes.

Runner self-managed

Si vous hébergez vous-même vos runners, modifiez la section [session_server] du fichier config.toml.

config.toml
[session_server]
listen_address = "[::]:8093" # Écouter sur toutes les interfaces disponibles en IPv4 et IPv6 sur le port 8093
advertise_address = "my-runner-host-name.tld:8093" # Ou my.runner.IP.address:8093
session_timeout = 1800
attention

Assurez-vous que :

  • GitLab peut se connecter à l'advertise_address.
  • Ladvertise_address est une adresse IP publique, sauf si vous avez configuré les requêtes sortantes.

Autres cas possibles

Si votre GitLab est hébergé chez adista et que votre runner est hébergé en interne, vous pouvez définir l'advertise_address sur une adresse IP publique.

Pour plus de sécurité, vous pouvez ajouter une règle de firewall n'autorisant que l'adresse IP de votre GitLab à y accéder.

Autorisation des requêtes sortantes

danger

Si l'option requêtes sortantes n'est pas configurée ou si vous la désactivez après coup, il est possible que les runners n'arrivent plus à prendre de job.

Dans l'espace d'administration, dans la section Paramètres > Réseau > Requêtes sortantes, cochez la case Autoriser les requêtes vers le réseau local des crochets Web et des intégrations et cliquez sur Enregistrer les modifications.

Autoriser les requêtes vers le réseau local des crochets Web et des intégrationsAutoriser les requêtes vers le réseau local des crochets Web et des intégrations