doc-locale/fr-fr/administration/integration/terminal.md
{{< details >}}
{{< /details >}}
{{< history >}}
{{< /history >}}
[!flag] Sur GitLab Self-Managed, cette fonctionnalité n'est pas disponible par défaut. Pour la rendre disponible, un administrateur peut activer le feature flag nommé
certificate_based_clusters.
Avec l'introduction de l'intégration Kubernetes, GitLab peut stocker et utiliser des identifiants pour un cluster Kubernetes. GitLab utilise ces identifiants pour fournir l'accès aux terminaux Web pour les environnements.
[!note] Seuls les utilisateurs disposant au minimum du rôle Maintainer pour le projet peuvent accéder aux terminaux Web.
Un aperçu détaillé de l'architecture des terminaux Web et de leur fonctionnement est disponible dans ce document. En bref :
GitLab et GitLab Runner prennent certaines précautions pour maintenir les données des terminaux Web interactifs chiffrées entre eux, et tout est protégé par des contrôles d'autorisation. Cela est décrit plus en détail ci-dessous.
[session_server] est configuré.x509 utilisé pour une connexion wss (Web Socket Secure).(IP|HOST):PORT/session/$SOME_HASH, où IP/HOST et PORT correspondent à la valeur configurée listen_address.wss.[!note] Les AWS Classic Load Balancers ne prennent pas en charge les web sockets. Si vous souhaitez que les terminaux Web fonctionnent, utilisez des AWS Network Load Balancers. Lisez la Comparaison des produits AWS Elastic Load Balancing pour plus d'informations.
Comme les terminaux Web utilisent les WebSockets, chaque proxy inverse HTTP/HTTPS placé devant Workhorse doit être configuré pour transmettre les en-têtes Connection et Upgrade au suivant dans la chaîne. GitLab est configuré par défaut pour le faire.
Cependant, si vous exécutez un équilibreur de charge devant GitLab, vous devrez peut-être apporter des modifications à votre configuration. Ces guides documentent les étapes nécessaires pour une sélection de proxies inverses populaires :
Workhorse ne laisse pas passer les requêtes WebSocket vers des endpoints non-WebSocket, il est donc sûr d'activer globalement la prise en charge de ces en-têtes. Si vous préférez un ensemble de règles plus restreint, vous pouvez le limiter aux URLs se terminant par /terminal.ws. Cette approche peut tout de même entraîner quelques faux positifs.
Si vous avez compilé votre installation vous-même, vous devrez peut-être apporter des modifications à votre configuration. Consultez Mise à niveau de Community Edition et Enterprise Edition depuis les sources pour plus de détails.
Pour désactiver le support des terminaux Web dans GitLab, arrêtez de transmettre les en-têtes hop-by-hop Connection et Upgrade dans le premier proxy inverse HTTP de la chaîne. Pour la plupart des utilisateurs, il s'agit du serveur NGINX fourni avec les installations du package Linux. Dans ce cas, vous devez :
nginx['proxy_set_headers'] de votre fichier gitlab.rbConnection et Upgrade.Pour votre propre équilibreur de charge, inversez simplement les modifications de configuration recommandées par les guides précédemment listés.
Lorsque ces en-têtes ne sont pas transmis, Workhorse renvoie une réponse 400 Bad Request aux utilisateurs tentant d'utiliser un terminal Web. En retour, ils reçoivent un message Connection failed.
Par défaut, les sessions de terminal n'expirent pas.
Prérequis :
Pour limiter la durée de vie des sessions de terminal dans votre instance GitLab :
max session time.