Tableau

Tableau Server en un Docker Linux

¿Sabías que ahora puedes implementar una instancia de Tableau Server para Linux utilizando contenedores Docker? Con la versión 2021.2 de Tableau, uno de los anuncios más emocionantes para los administradores y desarrolladores fue el lanzamiento de Tableau Server en un contenedor (container), ya que ahora la instalación sea mucho más rápida.

En este artículo, hablaremos de las ventajas de esta nueva tecnología puesta a disposición para los desarrolladores de Tableau (puedes encontrar la documentación completa aquí) y de cómo construir y activar rápidamente un entorno de pruebas listo para usar. Pero primero, demos un paso atrás y empecemos con los contenedores.

Qué son los contenedores (containers) y por qué utilizarlos

Cuando hablamos de containerization, nos referimos a una tendencia muy actual en el despliegue y gestión de servicios y aplicaciones. La forma más fácil de entender el concepto de Contenedores es imaginarlos como Máquinas Virtuales (VMs), pero a diferencia de las VMs, no contienen su propio sistema operativo (Guest OS), sino que comparten el hardware y los recursos del sistema en el que están montados.


Tableau Server en un contenedor se convierte entonces en una máquina virtual «aligerada» con Tableau Server Linux preinstalado. Esta es una forma mucho más fácil de gestionar y más rápida de reinstalar o reimplantar Tableau Server incluso con cierta frecuencia y crear, por ejemplo, entornos de prueba listos para usar.

 

Implementación de un single-node de Tableau Server en un Container

Actualmente, solo se admite la versión de Tableau Server basada en Linux de tipo RHEL y se espera que la máquina en la que se está trabajando tenga Linux como sistema operativo con el paquete Docker instalado (documentación aquí). El procedimiento para crear y activar un servidor de un solo nodo que se utilizará como entorno de prueba estandarizado implica dos pasos principales: construir la imagen de Tableau Server en un contenedor (BUILD) y ejecutarla (RUN).

BUILD

La construcción de la imagen comienza con la descarga de Tableau Server en un Container Setup Tool (en formato .tar.gz) y un instalador de Tableau Server compatible en formato .rpm (versión 2021.2 o posterior) que se puede descargar desde la página de descargas de Tableau Server.

Extraemos el archivo tarball comprimido con el comando

 

tar -xzf tableau-server-container-setup-tool-<VERSION>.tar.gz

 

donde <VERSION> es la versión de la herramienta descargada. Dentro del nuevo directorio encontraremos, entre otros, el script build-image que permitirá la creación de la imagen Container junto con otros directorios para personalizar nuestra instalación de Tableau Server. En particular, será necesario compilar el archivo reg-info.json con nuestros datos de registro, solamente hará falta la información del producto que normalmente se requiere durante el procedimiento habitual de instalación de Tableau Server.

La carpeta customer-files será el directorio principal donde incluiremos todos los archivos necesarios para nuestra personalización (drivers, backups, scripts, etc). Dentro de él podemos encontrar un archivo llamado setup-script, un simple script por lotes que nos permite listar varios comandos preliminares para configurar el contenedor en su conjunto. También existe la posibilidad de insertar dos scripts llamados pre-init-command y post-init-command para ejecutar una serie de comandos (incluyendo todos los de tsm) antes y después de la inicialización de Tableau Server.

En este punto, el comando básico necesario para ejecutar la herramienta de configuración es

 

./build-image -accepteula -i ./<tableau-server-image.rpm> [-o output_image_name]

 

donde <tableau-server-image.rpm> es nuestro instalador copiado en el directorio raíz.

 

RUN

Si nuestra intención es crear una instancia de prueba estandarizada y siempre lista para usar de Tableau Server, debemos preparar dos archivos: el archivo de copia de seguridad (<backup-file.tsbak>) y el archivo de topología del servidor y configuración de servicios (<settings-file.json>). Estos archivos nos permitirán hacer una copia de seguridad completa y restaurar Tableau Server en el nuevo contenedor (Realizar una copia de seguridad y restauración completa de Tableau Server).

A continuación, copiamos estos dos archivos en el directorio customer-files/backups y ejecutamos el comando para lanzar la ejecución del contenedor y la inicialización del servidor:

 

docker run \

 

-e LICENSE_KEY=<key> \    (***Licencia de Tableau Server***)

 

-e TABLEAU_USERNAME=<username> \     (***initial-user Server Admin username***)

 

-e TABLEAU_PASSWORD=<password> \                 (***and password***)

 

-e CONFIG_FILE=/docker/customer-files/backups/<settings-file.json> \

 

-e BACKUP_FILE=/docker/customer-files/backups/<backup-file.tsbak> \

 

-p 8080:8080 \

 

-d <Tableau Server in a Container image ID or tag>

 

La opción -p indica a Docker que ponga el puerto 8080 dentro del contenedor (el puerto por defecto desde el que Tableau Server in a Container espera el tráfico de usuarios) y lo vincule al puerto de la máquina host. La opción -d se utiliza para establecer un ID específico para el nuevo contenedor.

Independientemente de la restauración de la copia de seguridad, la documentación de Tableau indica que Tableau Server se inicializará en 10-20 minutos. Dependiendo del tamaño de la copia de seguridad a importar, tardaremos más tiempo en tener nuestro nuevo entorno de pruebas listo para ser utilizado.

 

Posibles errores a tener en cuenta y mayor personalización

 

DIRECTORIO PRINCIPAL

Una vez inicializada la imagen e iniciado Docker, todos los archivos relacionados con Tableau Server en un contenedor se colocarán en el directorio /docker/ del nuevo contenedor; por supuesto, la carpeta customer-files de personalización se copiará automáticamente en /docker/customer-files. Es importante recordar este paso para establecer las rutas correctas a los distintos archivos y scripts que queremos utilizar.

 

PERMISOS DE EJECUCIÓN

Los archivos pre-init-command o post-init-command deben tener permisos de ejecución para todos los usuarios. Para estar seguros, añadimos el comando

 

chmod +rx /docker/customer-files/<pre-init-command> (*** o <post-init-command> ***)

 

al script customer-files/setup-script.

 

DRIVERS

La versión básica del setup-script que crea la imagen de Tableau Server no requiere la preinstalación de ningún conector de datos o driver, pero sería recomendable tener al menos el de PostgreSQL disponible para poder utilizar Tableau Administrative Views. Para ello, los pasos son los siguientes:

 

  • Descarga el driver compatible (.rpm y .jar) desde la página de Tableau https://www.tableau.com/en-us/support/drivers ;
  • Copia el archivo en el directorio customer-files de Tableau Server en una herramienta de configuración de contenedores, preferiblemente en una carpeta dedicada a los controladores (customer-files/drivers);
  • Edita el archivo customer-files/setup-script para que el controlador se instale en el contenedor. Sólo tienes que añadir:

 

sudo yum install -y /docker/archivos-clientes/<tableau-postgresql-odbc>.rpm

 

Edita el archivo customer-files/post-init-command para mover el archivo .jar del controlador a donde Tableau espera que esté:

 

mkdir /docker/opt/tableau/tableau_driver/jdbc

 

mv /docker/archivos-del-cliente/<tableau-postgresql.jar> /docker/opt/tableau/tableau_driver/jdbc/<tableau-postgresql.jar>

 

¡Para seguir leyendo más consejosy continuar con tu formación en Tableau, síguenos en LinkedIn!

Suscríbete al boletín

Para estar informado sobre las novedades de Tableau y Alteryx, sobre nuestros productos y servicios y sobre los próximos eventos de Visualitics, suscríbete a nuestro boletín. ¡Puedes elegir el tipo de envío que prefieres y darte de baja en cualquier momento!
¿Qué novedades quieres recibir?
¿Qué empresa trata tus datos?

VISUALITICS PARTNERS, S.L. (en adelante, “VISUALITICS“)

¿Por qué tratamos los datos que te pedimos?

Únicamente tratamos tus datos para poder prestarte los servicios de VISUALITICS + info

¿Cuál es la legitimación para este tratamiento de tus datos?

Estos datos son necesarios para llevar a cabo la prestación de los servicios ofrecidos por VISUALITICS + info

¿Se van a hacer cesiones o transferencias con tus datos?

Si así lo consientes, tus datos podrán ser cedidos a terceras empresas. + info

¿Cuáles son mis derechos?

El interesado tiene derecho a ejercitar su derecho de:

– Acceso, rectificación, supresión, oposición, portabilidad de los Datos, limitación del tratamiento y a no ser objeto de decisiones automatizadas individualizadas + info

¿Tienes dudas?

Tanto si tienes alguna o sugerencia como si quieres darte de baja ponte en contacto con nosotros enviando un email a la siguiente dirección: info@visualitics.es