Installer Bridge pour conteneurs Linux

Bridge pour Linux procure l’évolutivité et les capacités de gestion rationalisée des charges de travail conteneurisées. Les instructions suivantes décrivent un moyen simple d’exécuter Bridge pour Linux et supposent que vous connaissez les bases de la plateforme Docker et des termes clés utilisés dans l’écosystème.

Installer et exécuter Bridge à partir d’un conteneur Docker

Pour utiliser Bridge sous Linux, vous devez créer une image Docker personnalisée, installer le package RPM, puis exécuter Bridge dans l’image du conteneur.

Conditions préalables

  • Installation du moteur Docker. Pour l’image de base du conteneur Docker, Bridge sur Linux est pris en charge par :
    • Amazon Linux 2
    • Amazon Linux 2023
    • Red Hat 8.3 et versions ultérieures

      Remarque : CentOS n'est pas pris en charge.

  • Le dernier package RPM pour Tableau Bridge depuis la page Téléchargements(Le lien s’ouvre dans une nouvelle fenêtre) sur le site Web de Tableau.
  • Connaissance du système d’exploitation Linux.
  • Interpréteur de scripts shell de base.
  • Expérience de Docker.
  • Un Jeton d’accès personnel. Nous vous recommandons d’utiliser un jeton d’accès personnel par client Bridge.

Étape 1 : Créer une image de conteneur Bridge

Les étapes suivantes sont les instructions de base pour créer une image de base de Bridge sous Linux. Pour plus d’informations, consultez Présentation de Docker.

Après l’installation de Docker, seul l’utilisateur racine est autorisé à exécuter des commandes. Vous pouvez exécuter des commandes Docker avec sudo ou par un utilisateur qui est membre du groupe Docker.

  1. Téléchargez le package Bridge .rpm depuis la page Téléchargements(Le lien s’ouvre dans une nouvelle fenêtre) sur le site Web de Tableau.
  2. (Facultatif) Vous pouvez modifier les paramètres de configuration de manière à modifier la façon dont le client s’exécute. Pour plus d’informations, consultez Modifier les paramètres du client Bridge.
  3. Créez un répertoire de travail et déplacez le package .rpm dans le répertoire.

    cd ~

    $ mkdir Docker

    $ cd Docker

    $ mv <RPM_location>.rpm .

  4. Créez un classeur Docker dans le répertoire de travail. Par exemple :

    $ touch Dockerfile

  5. Modifiez le classeur Docker et ajoutez les commandes à exécuter yum update.

    Exemple de Red Hat

    Pour Red Hat 8 :

    FROM registry.access.redhat.com/ubi8/ubi:latest

    RUN yum -y update

  6. Modifiez le classeur Docker, puis entrez les commandes pour copier, installer et supprimer le package RPM pour Bridge de l'image. Par exemple :

    COPY <your_bridge_rpm>.rpm /<path_of_container>

    RUN ACCEPT_EULA=y yum install -y $(find . -name *.rpm) && rm -rf *.rpm

  7. Créez une nouvelle image de conteneur en exécutant la commande build docker.

    Par exemple, la commande suivante crée une image dans le répertoire courant et l’identifie avec le mot ​"bridge_base":

    docker buildx build --platform=linux/amd64 -t bridge_base .

  8. Vérifiez que l’image de base que vous avez créée figure dans la liste des images :

    docker images | grep bridge

Étape 2 : Installer les pilotes

Le client Bridge nécessite des pilotes pour faciliter la connectivité entre les données du réseau privé et Tableau Cloud. En ce qui concerne les pilotes, rendez-vous sur Téléchargement de pilotes, sélectionnez la source de données, puis sélectionnez Linux pour le système d’exploitation.

  1. L’installation peut se faire de manière interactive après le lancement de l’image de base, ou une couche supérieure de la couche de base peut être écrite sur des Dockerfiles séparés.

    Exemple

    Après avoir copié le package RPM du pilote MySQL dans le répertoire, vous pouvez créer un répertoire de travail distinct pour superposer les pilotes MySQL en utilisant le Dockerfile suivant :

    # Using previously built bridge_base image

    FROM bridge_base COPY mysql-connector-odbc-8.0.26-1.el7.x86_64.rpm .

    RUN yum install -y mysql-connector-odbc-8.0.26-1.el7.x86_64.rpm

    Exemple

    Installez un pilote JDBC postgres. Cette action peut aussi être effectuée dans un Dockerfile séparé.

    # Using previously built bridge_base image

    FROM bridge_base COPY postgresql-42.3.3.jar /opt/tableau/tableau_driver/jdbc/

    Exemple

    Installez le pilote Amazon Redshift.

    # Using previously built bridge_base image

    FROM bridge_base

    yum install -y unixODBC

    yum --nogpgcheck localinstall -y

    AmazonRedshiftODBC-64-bit-1.4.59.1000-1.x86_64.rpm

    odbcinst -i -d -f /opt/amazon/redshiftodbc/Setup/odbcinst.ini

  2. Créez une nouvelle image :
  3. docker image build -t bridge_final .

    L’image bridge_final utilise l’image mise en cache à l’étape précédente et automatise l’installation du pilote pour toutes vos instances Bridge. Si vous disposez d’un référentiel d’images, vous pouvez publier l’image dans le référentiel et la distribuer à toutes les machines sur lesquelles vous souhaitez exécuter Bridge.

Étape 3 : Exécuter le conteneur Bridge

L’image de base étant créée, vous pouvez la déployer en utilisant diverses méthodes. Les étapes de base sont les suivantes :

  1. Démarrez l’instance du conteneur Bridge.
  2. Connectez-vous et démarrez le subordonné.
  3. Assignez l’agent à un pool.

Remarque : Bridge pour Linux ne prend pas en charge les anciennes programmations Bridge. Consultez Migrer des (anciennes) programmations Bridge vers les programmations en ligne pour plus d’information.

  1. Avant de lancer le déploiement du conteneur, créez un Jeton d’accès personnel. Le jeton d’accès personnel est requis pour se connecter à l’agent. Tableau Cloud prend en charge 104 jetons d’accès personnel par utilisateur. Nous vous recommandons d’utiliser un jeton d’accès personnel par client.

    Remarque : Les noms de jetons suivants doivent correspondre : le patTokenId (utilisé lors de l’exécution de la commande run-bridge.sh), le nom du jeton dans le fichier JSON, et le nom du jeton lors de la génération du PAT dans Tableau Cloud.

  2. Définissez les paramètres régionaux dans le Docker en utilisant ENV LC_ALL en_US.UTF-8. Vous pouvez également définir les paramètres régionaux en ajoutant ce qui suit au fichier /etc/profile :
  3. export LANG="en_US.utf8"

    export LANGUAGE="en_US.utf8"

    export LC_ALL="en_US.utf8"

  4. Démarrez une instance du conteneur Bridge. Vous pouvez configurer et démarrer l’image du conteneur de plusieurs façons. La méthode interactive suivante explique les étapes nécessaires pour démarrer le subordonné. Lorsque vous quittez l’application, le conteneur cesse de fonctionner.
    1. Utilisez la méthode suivante pour accéder en tant que root à l’invite de l’interpréteur de commandes du conteneur. Les autres commandes sont exécutées dans le cadre de cette session interactive du conteneur.

      docker container run -it bridge_final /bin/bash

    2. Ajoutez le jeton d’accès personnel à un fichier plat au format JSON. Par exemple :

      /home/jSmith/Documents/MyTokenFile.txt

    3. Exemple de syntaxe de jeton :

      {"MyToken" : "uLICC7e8SUS8ZNGe8RIFn4u==:lRihmYHI0XBKle7e8S4uSORXGqAkAl4"}

    4. Modifiez les autorisations du fichier pour restreindre l’accès à l’utilisateur actuel. Par exemple :

      chmod 600 MyTokenFile.txt

    5. Démarrez le worker en exécutant la commande run-bridge.sh et fournissez les options de commande suivantes :

      CommandeDescription
      --patTokenIdIdentifiant du jeton d’accès personnel. Consultez Jetons d’accès personnels pour plus d’information.
      --userEmailCourriel de l’utilisateur associé au jeton d’accès personnel.
      --clientNom que vous souhaitez attribuer au subordonné.
      --siteNom du site tel qu’il apparaît dans l’URI. Ne saisissez pas le chemin de l’URI.
      --patTokenFileNom de fichier et chemin d’accès au fichier texte du jeton d’accès personnel.
      -e(En option) Par défaut, le worker exécute le client Bridge en tant que service d’arrière-plan. Pour exécuter le worker au premier plan, incluez l’argument -e.
      --poolId(Facultatif) Identifiant de pool attribué au client. Consultez Utiliser un identifiant de pool.

      Exemple de commande

      /opt/tableau/tableau_bridge/bin/run-bridge.sh -e --patTokenId="Mytoken" --userEmail="admin@tableau.com" --client="myBridgeAgent" --site="mySite" --patTokenFile="/home/jSmith/Documents/MyTokenFile.txt" --poolId="1091bfe4-604d-402a-b41c-29ae4b85ec94"

      Remarque : Si vous installez des versions plus anciennes de Bridge pour Linux, vous devez exécuter une commande différente pour démarrer le worker. Pour les versions 2024.2 et antérieures, démarrez le worker avec la commande TabBridgeClientWorker (pas la commande run-bridge.sh). Toutes les options de commande sont les mêmes.

  5. Le message suivant indique que l’agent est démarré. “Service started: ...”

    Utilisez Control-C pour arrêter le subordonné. Au lieu de redémarrer le subordonné, vous pouvez lancer un nouveau subordonné pour l’image du conteneur.

    Si vous n’avez pas attribué de pool avec l’option de commande --poolId, le client est attribué au pool par défaut. Si vous souhaitez utiliser le client avec des domaines ou des connexions virtuelles spécifiques, vous pouvez attribuer le client à un pool désigné dans l’interface utilisateur. Pour ce faire, accédez au menu Tableau Cloud Accueil > Paramètres > Bridge. Pour plus d’information, consultez Configurer le pool de clients Bridge.

Utiliser un identifiant de pool

Lors du démarrage du Bridge Worker à l’aide de la commande run-bridge.sh, le poolId est facultatif. Toutefois, le comportement du client dépend de son inscription sur un site et de son affectation à un pool. Tableau Bridge ne peut se connecter qu’à un seul site Tableau Cloud à la fois. Le client est enregistré sur un site lorsque vous vous déconnectez et vous reconnectez.

Si aucun identifiant de pool n’est fourni

  • Si le client Bridge a été enregistré, le statut du client reste le même :
    • Si le client est affecté à un pool, il reste affecté au pool, qu’il s’agisse d’un pool nommé ou d’un pool par défaut.
    • Si le client n’est pas affecté à un pool, il restera non attribué.
  • Si le client Bridge est nouveau (vous ne vous êtes jamais connecté à Tableau Cloud), le client est affecté au pool par défaut.

Si un identifiant de pool est fourni

  • Si l’identifiant de pool est fourni et qu’il est correct, le client Bridge est affecté au pool nommé.
  • Si l’identifiant de pool est fourni et qu’il est incorrect :
    • Si le client Bridge n’est pas enregistré, alors le client est affecté au pool par défaut.
    • Si le client Bridge est enregistré, le statut du client reste le même, qu’il soit affecté à un pool nommé, à un pool par défaut ou qu’il soit non attribué.

Trouver l’identifiant de pool

Pour trouver l’identifiant de pool, accédez à la page Paramètres > Bridge et cliquez sur le nom du pool. Par exemple :

Résolution des problèmes

Installation d'anciennes versions

Si vous installez des versions plus anciennes de Bridge pour Linux, vous devez exécuter une commande différente pour démarrer le worker. Pour les versions 2024.2 et antérieures, démarrez le worker avec la commande TabBridgeClientWorker (pas la commande run-bridge.sh).

Toutes les options de commande sont les mêmes que celles documentées ci-dessus dans Étape 3 : Exécuter le conteneur Bridge.

Par exemple : 

/opt/tableau/tableau_bridge/bin/TabBridgeClientWorker -e --patTokenId="Mytoken" --userEmail="admin@tableau.com" --client="myBridgeAgent" --site="mySite" --patTokenFile="/home/jSmith/Documents/MyTokenFile.txt" --poolId="1091bfe4-604d-402a-b41c-29ae4b85ec94"

Erreur de démarrage du worker

Dans certains cas, l'erreur suivante s’affiche après l’exécution de la commande run-bridge.sh :

Missing log in parameters. Aborting the attempt to start service worker.

La plupart du temps, il suffit de réexécuter la commande avec les options d’origine et l’option -e pour résoudre le problème. L’option -e exécute le service worker de Bridge au premier plan.

Utilisation des fichiers journaux

Les fichiers journaux sont stockés dans le dossier My_Tableau_Bridge_Repository/Logs de l’utilisateur. Pour enregistrer des fichiers journaux dans un dossier tmp , exécutez la commande suivante :

docker container run --volume /tmp/bridge_logs:/root/Documents/My_Tableau_Bridge_Repository/Logs -it bridge_final /bin/bash

Dans cet exemple, l’emplacement est /tmp/bridge_logs. L’utilisation de la commande Docker simplifie l’enregistrement des fichiers journaux et évite de devoir copier manuellement les fichiers journaux de Bridge du conteneur à votre système de fichiers locaux.

Échec du pilote MySQL

Si les LC_MESSAGES ne sont pas définis avec les paramètres régionaux UTF-8, des problèmes de lecture et d’affichage peuvent se produire. Vous pouvez modifier le fichier /etc/profile ou relancez le worker en utilisant la commande suivante :

LC_ALL=en_US.UTF-8 /opt/tableau/tableau_bridge/bin/run-bridge.sh -e

Le client Bridge s'arrête de manière inattendue en raison de l'expiration du jeton d'accès personnel

Lorsqu'un jeton d'accès personnel (PAT) expire, le client Bridge est déconnecté de Tableau Cloud et peut entraîner l'arrêt du conteneur. Depuis le client Bridge, vous pouvez vérifier si votre PAT a expiré en exécutant la commande Démarrer au premier plan. Si le jeton d’accès personnel est expiré, l’erreur suivante s’affiche :

The client credentials are invalid. To complete the request, reset the credentials, and sign in to the Tableau Bridge client.

Si vous êtes le propriétaire d'origine du PAT, vous pouvez également vérifier si le PAT est expiré en visitant Gérer les paramètres du compte dans Tableau Cloud. Pour résoudre le problème, vous devrez générer un nouveau PAT et suivre les étapes ci-dessus, Étape 3 : Exécuter le conteneur Bridge.

Erreurs de délai d’expiration des extraits intégrés et des connexions en direct intégrées

La version 24.3 de Bridge sur Linux a apporté des améliorations significatives de la performances pour les extraits intégrés et les connexions en direct intégrées. Si vous rencontrez des erreurs de délai d’expiration sur les versions antérieures, nous vous recommandons d’effectuer une mise à niveau vers la version 24.3 de Bridge sur Linux ou une version ultérieure. Si cela ne résout pas le problème, publiez la source de données séparément du classeur.

Merci de vos commentaires!Votre commentaire s été envoyé avec succès. Merci!