Tableau Server dans un conteneur

Introduction

Tableau Server dans un conteneur est la première offre de Tableau d'un serveur basé sur un conteneur. Tableau Server dans un conteneur est une instance Tableau Server tout-en-un qui s'exécute au sein d’un conteneur Linux Docker. En d'autres termes, une image Tableau Server dans un conteneur est une image Docker qui exécute une application Tableau Server autonome complète. Tableau Server dans un conteneur est notre première étape parmi de nombreuses étapes prenant en charge l'exécution de Tableau Server dans des environnements basés sur un conteneur.

Pour comprendre simplement le concept de de Tableau Server dans un conteneur, considérez-le comme une machine virtuelle sur laquelle Tableau Server est préinstallé. L'image est basée sur une image CentOS 7.x et exécute supervisord (au lieu de systemd) à l'intérieur du conteneur. Lorsque le conteneur démarre supervisord, il tente immédiatement d'initialiser et de démarrer Tableau Server. Une grande partie de la présente documentation s'applique à décrire comment automatiser la configuration et l'utilisation afin que vous puissiez exécuter Tableau Server dans des environnements Docker.

L'outil d'installation de l'image Tableau Server dans un conteneur vous aide à créer et à personnaliser les images de conteneur de manière à inclure des packages et des artefacts personnalisés. L'une des fonctions principales de l'outil consiste à créer l'image du conteneur et à installer des connecteurs de données personnalisés.

Limites

  • Tableau Server dans un conteneur prend uniquement en charge l'activation de licence à l'aide de Server ATR, ce qui nécessite que le conteneur puisse accéder à Internet. Par conséquent, l'activation hors ligne dans un environnement air-gap n'est pas possible.
  • Tableau Server dans un conteneur ne prend actuellement pas en charge l'agent Resource Monitoring Tool (RMT).
  • Tableau Server dans un conteneur ne prend pas en charge Kerberos.

Pour tester rapidement une image Tableau Server dans un conteneur dans des scénarios de faisabilité, consultez Tableau Server dans un conteneur - Démarrage rapide.

Workflow de base pour Tableau Server dans un conteneur

Voici le workflow de base pour utiliser Tableau Server dans un conteneur. Vous trouverez des instructions détaillées pour chaque étape dans les liens.

  1. Utilisez l'outil de configuration pour créer une image personnalisée de Tableau Server dans un conteneur. Voir Tableau Server dans un conteneur - Utilisation de l’outil d’installation.
  2. Exécutez l'image que vous avez créée pour démarrer et utiliser Tableau Server dans un conteneur. Voir Tableau Server dans un conteneur - Utilisation d'une image.

Considérations relatives aux fonctionnalités de Tableau Server

Certaines fonctionnalités de Tableau Server fonctionnent différemment dans les conteneurs. Cette section couvre des fonctionnalités spécifiques présentant des considérations spéciales ou différentes dans un environnement de conteneur.

Active Directory

Définir le contrôleur de domaine AD

Si vous prévoyez d'utiliser Active Directory en tant que magasin d'identités pour les pages Web et les sites Tableau Server, vous devez prendre en compte une considération supplémentaire. Les instances Tableau Server exécutées dans des environnements Linux déterminent de manière dynamique avec quel contrôleur de domaine AD communiquer en examinant leur sous-réseau IP. Les conteneurs peuvent se voir attribuer des adresses IP arbitraires, et dans ce cas, Tableau Server ne pourra pas nécessairement utiliser son adresse IP pour trouver un contrôleur de domaine approprié. Pour cette raison, il peut être nécessaire de configurer un contrôleur de domaine/nom d'hôte spécifique avec lequel Tableau Server communiquera. Procédez comme suit :

  1. Déterminez le contrôleur de domaine que Tableau Server doit utiliser et obtenez le nom d'hôte.
  2. Définissez la clé de configuration wgserver.domain.ldap.hostname sur le nom d'hôte à l'aide des options de configuration standard de l’Administrateur Tableau Server :

    • Définissez la valeur dans le fichier de configuration jsonCONFIG_FILE.
    • Utilisez la commande de configuration TSM

      tsm configuration set -k wgserver.domain.ldap.hostname -v <hostname>

Importer un certificat AD dans le keystore Tableau Server

Par défaut, Tableau Server dans un conteneur communique avec AD via StartTLS chaque fois qu'une liaison simple est utilisée. Ainsi, lorsque le conteneur est exécuté dans cette configuration, il est nécessaire d'importer le certificat du serveur AD dans le magasin de clés Tableau Server, sinon l'initialisation du serveur échouera. Procédez comme suit :

  1. Créez un script pre-init-command (consultez la section Script de pré-initialisation). Ajoutez la ligne suivante pour ajouter le certificat AD au keystore Tableau Server.

    ${INSTALL_DIR}/packages/repository.${SERVICE_VERSION}/jre/bin -importcert -noprompt -alias startTlsCert -file <mounted-certificate-path> -storetype JKS -storepass changeit -keystore ${DATA_DIR}/config/tableauservicesmanagerca.jks
  2. Montez le certificat du serveur AD sur le chemin de fichier fourni pour le paramètre -file dans le script pre-init-command.

Sinon, le paramètre par défaut pour communiquer avec AD via StartTLS peut être désactivé. Définissez wgserver.domain.ldap.starttls.enabled sur false pour désactiver StartTLS. Cette option n'est toutefois pas recommandée.

Exemples de configuration de déploiement

Docker

Utilisation de base de Tableau Server dans un conteneur
docker run \
-e LICENSE_KEY=<key>
-p 8080:8080
-d <Tableau Server in a Container image ID or tag>
Utilisation de base de Tableau Server dans un conteneur avec un utilisateur administrateur initial automatisé
docker run \
-e LICENSE_KEY=<key> \
-e TABLEAU_USERNAME=<myadmin> \
-e TABLEAU_PASSWORD_FILE=/etc/tableau-admin-secret \
-v <full-path-to-pw-file>:/etc/tableau-admin-secret \
-p 8080:8080 -d <Tableau Server in a Container image ID or tag>
Mode TSM uniquement
docker run \
-e TSM_ONLY=1 \
-p 8080:8080 -d <Tableau Server in a Container image ID or tag>
Utilisation de base d'une topologie multinœud
Nœud initial

Option 1 : utilisez cette option si la configuration du serveur (CONFIG_FILE) spécifie une topologie multinœud :

docker run \
-v <network-shared-directory>:/docker/config/bootstrap \
-v <full-path-to-config-file>:/docker/config/config.json:ro \
-e LICENSE_KEY=<key> \
-p 8080:8080 -p 8800-9000:8800-9000 -p 27000-27010:27000-27010 \
--hostname=<static (internal) name of host machine> \
-d <Tableau Server in a Container image ID or tag>

Option 2 : utilisez cette option si vous souhaitez un déploiement multinœud même si la configuration du serveur ne spécifie pas une topologie multinœud :

docker run \
-v <network-shared-directory>:/docker/config/bootstrap \
-e LICENSE_KEY=<key> -e ALWAYS_WRITE_BOOTSTRAP_FILE=1 \
-p 8080:8080 -p 8800-9000:8800-9000 -p 27000-27010:27000-27010 \
--hostname=<static (internal) name of host machine> \
-d <Tableau Server in a Container image ID or tag>
Nœud supplémentaire
docker run \
-v <network-shared-directory>:/docker/config/bootstrap \
-e BOOTSTRAP_INSTALL=1 \
-p 8080:8080 -p 8800-9000:8800-9000 \
--hostname=<static (internal) name of host machine> \
-d <Tableau Server in a Container image ID or tag>
Externaliser l’utilisation des données
docker run \
-v <empty-data-dir>:/var/opt/tableau \
-e LICENSE_KEY=<key> \
--hostname=<static (internal) name of host machine> \
-p 8080:8080 -d <Tableau Server in a Container image ID or tag>
Utilisation de base d'init-container

Init Container

docker run \
-v <empty-data-dir>:/var/opt/tableau \
-e LICENSE_KEY=<key> \
-e INIT_CONTAINER=1 \
--hostname=<static (internal) name of host machine> \
-p 8080:8080 -d <Tableau Server in a Container image ID or tag>

Run Container

docker run \
-v <empty-data-dir>:/var/opt/tableau \
--hostname=<static (internal) name of host machine> \
-p 8080:8080 -d <Tableau Server in a Container image ID or tag>
Restauration de base depuis une sauvegarde sur un seul nœud
docker run \
-v <full-path-to-backup-file>:/docker/config/backup/backup-file.tsbak \
-v <full-path-to-config-only-file>:/docker/config/config.json:ro \
-e LICENSE_KEY=<key> \
-p 8080:8080 -d <Tableau Server in a Container image ID or tag>

Docker-Compose

version: '3.2'
services:
    tableau-server:
         hostname: localhost
         volumes:
              - <your-tsm-command-file>:/docker/config/tsm-commands:ro
              - <your-config-file >:/docker/config/config.json:ro
         ports:
              - "8080:8080"
         image: ${IMAGE_NAME}
         environment:
              - LICENSE_KEY=<license-key>

 

 

Autres articles de cette section

Merci de vos commentaires !