Introdução

O Tableau Server em um Contêiner é a primeira oferta de servidor em contêiner do Tableau. O Tableau Server em um contêiner é uma instância multifuncional do Tableau Server em execução dentro de um contêiner Docker do Linux. Em outras palavras, um Tableau Server em um Contêiner é uma imagem de docker que executa um aplicativo completo e independente do Tableau Server. O Tableau Server em um Contêiner é o primeiro de muitos passos para aceitar a execução do Tableau Server em um ambiente de contêineres.

A maneira mais fácil de entender o conceito do Tableau Server em um Contêiner é imaginá-lo como uma VM com o Tableau Server pré-instalado. A imagem é baseada em uma imagem do CentOS e executa supervisord (em vez de systemd) no contêiner. Quando o contêiner é iniciado, o supervisord imediatamente tenta inicializar e executar o Tableau Server. Grande parte desta documentação visa descrever como estabelecer a configuração e utilizar a automação de modo que você possa executar o Tableau Server em ambientes do Docker.

A ferramenta de configuração de Tableau Server em uma Imagem de contêiner ajuda a criar e personalizar imagens de contêiner para incluir pacotes e artefatos personalizados. Uma das funções principais da ferramenta é criar a imagem do contêiner e instalar conectores de dados personalizados.

Limitações

  • O Tableau Server em um Contêiner oferece suporte apenas à ativação de licença usando Server ATR, que exige que o contêiner tenha acesso à Internet. Portanto, não é possível a ativação offline em um ambiente fisicamente isolado.
  • O Tableau Server em um Contêiner atualmente não é compatível com o agente da Ferramenta de monitoramento de recursos (RMT).
  • O Kerberos não é compatível com o Tableau Server em um Contêiner.

Para testar o Tableau Server em uma imagem de contêiner rapidamente em cenários à prova de conceito, consulte Tableau Server em um Contêiner - Início Rápido .

Fluxo de trabalho básico do Tableau Server em um Contêiner

Aqui está o fluxo de trabalho básico para usar o Tableau Server em um Contêiner Você pode encontrar instruções detalhadas para cada etapa nos links.

  1. Use a ferramenta de configuração para criar uma imagem personalizada do Tableau Server em um contêiner. Consulte Tableau Server em um Contêiner - Usar ferramenta de configuração.
  2. Execute a imagem que você criou para iniciar e usar o Tableau Server em um contêiner. Consulte Tableau Server em um Container - Utilização de uma imagem.

Considerações sobre os recursos do Tableau Server

Alguns recursos do Tableau Server funcionam de maneira diferente em contêineres. Esta seção cobre recursos específicos que têm considerações especiais ou diferentes em um ambiente de contêiner.

Active Directory

Definir controlador de domínio AD

Se você planeja usar o Active Directory como um armazenamento de identidade para páginas e sites do Tableau Server, há uma consideração adicional a ser considerada. Os Tableau Servers em execução em ambientes Linux determinam dinamicamente com qual controlador de domínio AD se comunicar examinando sua sub-rede IP. Os contêineres podem ser atribuídos a endereços IP arbitrários e, neste caso, o Tableau Server não será necessariamente capaz de usar seu endereço IP para encontrar um controlador de domínio apropriado. Por esse motivo, pode ser necessário configurar um controlador de domínio/nome de host específico com o qual o Tableau Server se comunique. Para resolver isso, siga essas etapas:

  1. Determine qual controlador de domínio você deseja que o Tableau Server use e obtenha o nome do host.
  2. Defina a chave de configuraçãowgserver.domain.ldap.hostname ao nome do host usando as opções de configuração padrão do administrador do Tableau Server:

    • Defina o valor no arquivo de configuração jsonCONFIG_FILE .
    • Use o comando configuração do TSM

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

Importar certificado AD para o reposistório de chaves do Tableau Server

Por padrão, o Tableau Server em um contêiner se comunica com o AD via StartTLS, sempre que o vínculo simples é usado. Portanto, quando o contêiner é executado nesta configuração, é necessário importar o certificado do servidor AD para o repositório de chaves do Tableau Server Keystore, caso contrário, a inicialização do servidor falhará. Para resolver isso, siga essas etapas:

  1. Crie um script pre-init-command (verifique a seção Script de pré-inicialização). Adicione a seguinte linha para acrescentar o certificado AD ao repositório de chaves do 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. Monte o certificado do servidor AD no caminho de arquivo fornecido para o parâmetro -file no script pre-init-command.

Como alternativa, a configuração padrão para se comunicar com o AD via StartTLS pode ser desabilitada. Defina wgserver.domain.ldap.starttls.enabled para false para desativar o StartTLS. Mas não é recomendado.

Exemplos de configuração de implantação

Docker

Uso básico do Tableau Server em um Contêiner
docker run \
-e LICENSE_KEY=<key>
-p 8080:8080
-d <Tableau Server in a Container image ID or tag>
Uso básico do Tableau Server em um Contêiner com Usuário administrador inicial automatizado
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>
Único modo do TSM
docker run \
-e TSM_ONLY=1 \
-p 8080:8080 -d <Tableau Server in a Container image ID or tag>
Uso básico de vários nós
Nó inicial

Opção 1: use se a configuração do servidor (CONFIG_FILE ) especifica uma topologia de vários nós:

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>

Opção 2: use se desejar uma implantação de vários nós, mesmo se a configuração do servidor não especificar a topologia de vários nós:

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ó adicional
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>
Externalizar o uso de dados
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>
Uso básico do init-container

Contêiner Init

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>

Contêiner de execução

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>
Restauração básica do nó único de backup
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>

 

 

Agradecemos seu feedback!