Introduzione

Tableau Server in un contenitore è la prima offerta server basata su contenitori di Tableau. Tableau Server in un contenitore è un'istanza completa di Tableau Server in esecuzione all'interno di un contenitore Docker di Linux. In altre parole, è un'immagine Docker che esegue un'intera applicazione Tableau Server autonoma. Tableau Server in un contenitore è il primo di molti passaggi per supportare Tableau Server in esecuzione negli ambienti basati su contenitori.

Il modo più semplice per comprendere il concetto di Tableau Server in un contenitore consiste nel considerarlo come una macchina virtuale con Tableau Server preinstallato. L'immagine è basata su un'Immagine UBI 8 (CentOS 7 per la versione 2022.1 e precedenti) ed esegue supervisord (anziché systemd) all'interno del contenitore. All'avvio del contenitore, supervisord tenterà immediatamente di inizializzare e avviare Tableau Server. Gran parte della documentazione seguente ha lo scopo di descrivere come fornire la configurazione e sfruttare l'automazione in modo da eseguire Tableau Server negli ambienti Docker.

Lo strumento di configurazione dell'immagine per Tableau Server in un contenitore consente di personalizzare le immagini del contenitore in modo da includere pacchetti e artefatti personalizzati. Una delle funzionalità principali dello strumento è creare l'immagine del contenitore e installare connettori dati personalizzati.

Limitazioni

  • Tableau Server in un contenitore supporta solo l'attivazione della licenza tramite l'ATR del server, che richiede che il contenitore abbia accesso a Internet. Pertanto, l'attivazione offline in un ambiente air gapped non è possibile.
  • Tableau Server in un contenitore attualmente non supporta l'agente di Resource Monitoring Tool (RMT).
  • Kerberos non è supportato in Tableau Server in un contenitore.

Per testare rapidamente l'immagine di Tableau Server in un contenitore in scenari proof-of-concept, consulta Tableau Server in un contenitore - Avvio rapido.

Flusso di lavoro di base per Tableau Server in un contenitore

Di seguito è descritto il flusso di lavoro di base per l'utilizzo di Tableau Server in un contenitore. Puoi trovare istruzioni dettagliate per ogni passaggio nei collegamenti.

  1. Utilizza lo strumento di configurazione per creare un'immagine personalizzata di Tableau Server in un contenitore. Vedi Tableau Server in un contenitore - Utilizzo dello strumento di configurazione.
  2. Esegui l'immagine che hai creato per avviare e utilizzare Tableau Server in un contenitore. Vedi Tableau Server in un contenitore - Utilizzo di un'immagine.

Considerazioni sulle funzionalità di Tableau Server

Alcune funzionalità di Tableau Server funzionano in modo diverso nei contenitori. In questa sezione sono illustrate funzionalità specifiche che hanno considerazioni speciali o diverse in un ambiente con contenitori.

Active Directory

Impostare il controller di dominio AD

Se prevedi di utilizzare Active Directory come archivio di identità per le pagine Web e i siti di Tableau Server, è necessaria un'ulteriore considerazione. I sistemi Tableau Server in esecuzione in ambienti Linux determinano in modo dinamico con quale controller di dominio AD comunicare esaminando la relativa subnet IP. Ai contenitori possono essere assegnati indirizzi IP arbitrari e, in questo caso, Tableau Server non sarà necessariamente in grado di utilizzare l'indirizzo IP per trovare un controller di dominio appropriato. Per questo motivo, potrebbe essere necessario configurare un controller di dominio/nome host specifico con cui Tableau Server possa comunicare. A tale scopo, procedi come segue:

  1. Determina quale controller di dominio vuoi che venga utilizzato da Tableau Server e ottieni il nome host.
  2. Imposta la chiave di configurazione wgserver.domain.ldap.hostname sul nome host utilizzando le opzioni di configurazione standard per l'amministrazione di Tableau Server:

    • Imposta il valore nel file di configurazione json CONFIG_FILE.
    • Utilizza il comando TSM configuration

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

Importare il certificato AD nell'archivio delle chiavi di Tableau Server

Per impostazione predefinita, Tableau Server in un contenitore comunica con AD tramite StartTLS ogni volta che viene utilizzato il binding semplice. Pertanto, quando il contenitore viene eseguito in questa configurazione, è necessario importare il certificato del server AD nell'archivio delle chiavi di Tableau Server. In caso contrario, l'inizializzazione del server avrà esito negativo. A tale scopo, procedi come segue:

  1. Crea uno script pre-init-command (consulta la sezione Script di pre-inizializzazione). Aggiungi la seguente riga per aggiungere il certificato AD all'archivio delle chiavi di Tableau Server.

    ${INSTALL_DIR}/packages/repository.${SERVICE_VERSION}/jre/bin/keytool -importcert -noprompt -alias startTlsCert -file <mounted-certificate-path> -storetype JKS -storepass changeit -keystore ${DATA_DIR}/config/tableauservicesmanagerca.jks
  2. Monta il certificato del server AD nel percorso del file fornito per il parametro -file nello script pre-init-command.

In alternativa, è possibile disabilitare l'impostazione predefinita per la comunicazione con AD tramite StartTLS. Imposta wgserver.domain.ldap.starttls.enabled su false per disabilitare StartTLS. Tuttavia, questa operazione non è consigliata.

Esempi di configurazione della distribuzione

Docker

Utilizzo di base di Tableau Server in un contenitore
docker run \
-e LICENSE_KEY=<key>
-p 8080:8080
-d <Tableau Server in a Container image ID or tag>
Utilizzo di base di Tableau Server in un contenitore con l'utente amministratore iniziale automatizzato
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>
Modalità solo TSM
docker run \
-e TSM_ONLY=1 \
-p 8080:8080 -d <Tableau Server in a Container image ID or tag>
Utilizzo di base multi-nodo
Nodo iniziale

Opzione 1: utilizza questa opzione se la configurazione del server (CONFIG_FILE) specifica una topologia multi-nodo:

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>

Opzione 2: utilizza questa opzione se desideri una distribuzione multi-nodo anche se la configurazione del server non specifica la topologia multi-nodo:

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>
Nodo aggiuntivo
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>
Esternalizzare l'utilizzo dei dati
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>
Utilizzo di base dell'inizializzazione del contenitore

Inizializzazione del contenitore

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>

Esecuzione del contenitore

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>
Ripristino di base da backup con nodo singolo
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>

 

 

Grazie per il tuo feedback.