Introducción

Tableau Server en un contenedor es la primera oferta de servidor basada en contenedores de Tableau. Tableau Server en un contenedor es una instancia de Tableau Server todo en uno que se ejecuta dentro de un contenedor de Docker de Linux. En otras palabras, la imagen de Tableau Server en un contenedor es una imagen de Docker que ejecuta toda una aplicación de Tableau Server independiente. Tableau Server en un contenedor es el primero de pasos necesarios para admitir Tableau Server que se ejecuta en entornos basados en contenedores.

La forma más fácil de entender el concepto de Tableau Server en un contenedor es imaginarlo como una máquina virtual con Tableau Server preinstalado. La imagen se basa en una imagen UBI 8 (imagen CentOS 7 para las versiones 2022.1 y anteriores) y ejecuta supervisord (en lugar de systemd) del contenedor. Cuando el contenedor inicie supervisord, este intentará inmediatamente inicializar y ejecutar Tableau Server. Gran parte de esta documentación tiene como objetivo describir cómo configurar y aprovechar la automatización para que pueda ejecutar Tableau Server en entornos Docker.

La herramienta de configuración de imágenes en un contenedor de Tableau Server le ayuda a crear y personalizar las imágenes de contenedor para incluir paquetes y artefactos personalizados. Una de las funciones principales de la herramienta es crear la imagen del contenedor e instalar conectores de datos personalizados.

Limitaciones

  • Tableau Server en un contenedor solo admite la activación de licencias mediante Server ATR, que requiere que el contenedor tenga acceso a Internet. Por lo tanto, no es posible la activación sin conexión en un entorno aislado.
  • Actualmente, Tableau Server en un contenedor no es compatible con el agente de la Resource Monitoring Tool (RMT).
  • Kerberos no es compatible con Tableau Server en un contenedor.

Para probar la imagen de Tableau Server en un contenedor rápidamente en escenarios de pruebas conceptuales, consulte Guía de inicio rápido: Tableau Server en un contenedor.

Flujo de trabajo básico para Tableau Server en un contenedor

A continuación aparece el flujo de trabajo básico para usar Tableau Server en un contenedor. Puede encontrar instrucciones detalladas para cada paso en los enlaces.

  1. Utilice la herramienta de instalación para crear una imagen personalizada de Tableau Server en un contenedor. Consulte Herramienta de configuración de Tableau Server en un contenedor.
  2. Ejecute la imagen que creó para iniciar y usar Tableau Server en un contenedor. Consulte Usar una imagen de Tableau Server en un contenedor

Consideraciones sobre las funciones de Tableau Server

Algunas características de Tableau Server funcionan de manera diferente en contenedores. Esta sección habla de características específicas que tienen consideraciones especiales o diferentes en un entorno de contenedor.

Active Directory

Establecer el controlador de dominio de AD

Si planea usar Active Directory como un almacén de identidades para las páginas web y los sitios de Tableau Server, debe tener en cuenta una consideración adicional. Los servidores de Tableau que se ejecutan en entornos Linux determinan dinámicamente con qué controlador de dominio de AD comunicarse mediante el examen de su subred IP. A los contenedores se les pueden asignar direcciones IP arbitrarias y, en este caso, Tableau Server no necesariamente podrá usar su dirección IP para encontrar un controlador de dominio apropiado. Por esta razón, puede ser necesario configurar un controlador de dominio o nombre de host específico para que Tableau Server se comunique. Para hacerlo, siga estos pasos:

  1. Determine qué controlador de dominio desea que use Tableau Server y obtenga el nombre de host.
  2. Establezca la clave de configuración wgserver.domain.ldap.hostname en el nombre de host mediante las opciones de configuración de administración estándar de Tableau Server:

    • Establezca el valor en el archivo de configuración json CONFIG_FILE.
    • Use el comando de configuración TSM.

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

Importar certificado de AD al almacén de claves de Tableau Server

De forma predeterminada, Tableau Server en un contenedor se comunica con AD a través de StartTLS siempre que se use un enlace simple. Por lo tanto, cuando el contenedor se ejecuta en esta configuración, es necesario importar el certificado del servidor AD al almacén de claves de Tableau Server; de lo contrario, la inicialización del servidor fallará. Para hacerlo, siga estos pasos:

  1. Cree un script pre-init-command (consulte la sección de script de preinicialización). Añada la siguiente línea para agregar el certificado de AD al almacén de claves del servidor de Tableau.

    ${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. Monte el certificado del servidor de AD en la ruta de archivo proporcionada para el parámetro -file en el script pre-init-command.

Alternativamente, se puede deshabilitar la configuración predeterminada para comunicarse con AD a través de StartTLS. Establezca wgserver.domain.ldap.starttls.enabled en false para deshabilitar StartTLS. Pero no se recomienda.

Ejemplos de configuración de la implementación

Docker

Uso básico de Tableau Server en un contenedor
docker run \
-e LICENSE_KEY=<key>
-p 8080:8080
-d <Tableau Server in a Container image ID or tag>
Uso básico de Tableau Server en un contenedor con usuario 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>
Modo solo TSM
docker run \
-e TSM_ONLY=1 \
-p 8080:8080 -d <Tableau Server in a Container image ID or tag>
Uso básico de varios nodos
Nodo inicial

Opción 1: use esto si la configuración del servidor (CONFIG_FILE ) especifica una topología de varios nodos:

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>

Opción 2: utilice esta opción si desea una implementación de varios nodos incluso si la configuración del servidor no especifica la topología de varios nodos:

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 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 el uso de datos
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 de 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>

Ejecutar contenedor

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>
Restauración básica a partir de una copia de seguridad de nodo único
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>

 

 

¡Gracias por sus comentarios!