Con la versione 2021.2 di Tableau (leggi il nostro articolo in proposito qui), uno dei annunci più eccitanti per gli amministratori e sviluppatori è stato il rilascio di Tableau Server in a Container! Da oggi quindi si può implementare un’istanza di Tableau Server per Linux sfruttando i Docker Containers, rendendo l’installazione molto più veloce.
In questo articolo parleremo dei vantaggi di questa nuova tecnologia messa a disposizione dagli sviluppatori Tableau (trovi qui la documentazione completa) e come costruire e attivare rapidamente un ambiente di testing sempre pronto all’uso. Ma prima facciamo un passo indietro e partiamo dai Containers.
Cosa sono i containers e perché usarli
Quando parliamo di containerization o conteinerizzazione, entriamo in un trend estremamente attuale per quanto riguarda l’implementazione e la gestione di servizi e applicazioni. Il modo più semplice per capire il concetto di Containers è quello di immaginarli come Macchine Virtuali (VM), ma a differenza di queste ultime, non contengono anche un proprio sistema operativo (Guest OS), ma condividono hardware e risorse del sistema su cui sono montati.
Tableau Server in a Container diventa allora una VM “alleggerita” con Tableau Server Linux pre-installato! Ciò rappresenta un modo molto più semplice da gestire e veloce di re-installare o ri-depositare Tableau Server anche frequentemente e creare, ad esempio, ambienti di test pronti all’uso.
Implementare un single-node Tableau Server in a Container
Attualmente è supportata solo la versione di Tableau Server basata sul Linux RHEL-like ed è previsto che la macchina su cui si stia lavorando abbia Linux come sistema operativo con il pacchetto Docker installato (qui la documentazione relativa). La procedura per creare e attivare un server a nodo singolo da usare come ambiente di test standardizzato prevede due fasi principali: la costruzione dell’immagine del Tableau Server in a Container (BUILD) e la sua esecuzione (RUN).
BUILD
La costruzione dell’immagine parte con il download del Tableau Server in a Container Setup Tool (in formato .tar.gz) e di un installer compatibile di Tableau Server in formato .rpm (versione 2021.2 o successiva) scaricabili dalla pagina dei download di Tableau Server.
Estraiamo il file compresso della tarball con il comando
tar -xzf tableau-server-container-setup-tool-<VERSION>.tar.gz
dove <VERSION> è la versione del tool scaricato. All’interno della nuova directory sarà presente, tra gli altri, lo script build-image che permetterà la creazione dell’immagine del Container insieme ad altre directory per customizzare la nostra installazione di Tableau Server. In particolare, sarà necessario compilare il file reg-info.json con i nostri dati di registrazione, nient’altro che le informazioni sul prodotto che normalmente vengono richieste durante la consueta procedura di installazione di Tableau Server.
La cartella customer-files sarà la directory principale in cui includeremo tutti i files necessari per la nostra customizzazione (drivers, backup, script, ecc). Al suo interno possiamo trovare un file denominato setup-script, un semplice batch script che permette di elencare diversi comandi preliminari per configurare il container nel suo complesso. Inoltre è prevista la possibilità di inserire due script denominati pre-init-command e post-init-command per eseguire una serie di comandi (inclusi tutti quelli da tsm) pre e post inizializzazione di Tableau Server.
A questo punto, il comando base necessario per eseguire il tool di setup è
./build-image –accepteula -i ./<tableau-server-image.rpm> [-o output_image_name]
dove <tableau-server-image.rpm> è il nostro installer copiato nella cartella principale.
RUN
Se la nostra intenzione è quella di creare una istanza di test di Tableau Server standardizzata e sempre pronta all’uso, converrà predisporre due file: quello di backup (<backup-file.tsbak>) e quello dei settings di servizi e topologia del server (<settings-file.json>). Questi file ci permetteranno di eseguire backup completo e ripristinare Tableau Server nel nuovo Container (Eseguire un backup completo e ripristinare Tableau Server).
Copiamo quindi all’interno della directory customer–files/backups questi due file ed eseguiamo il comando per lanciare l’esecuzione del Container e l’inizializzazione del server:
docker run \
-e LICENSE_KEY=<key> \ (*** licenza di 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>
L’opzione -p dice Docker di esporre la porta 8080 dentro al container (porta di default da cui Tableau Server in a Conatiner si aspetta il traffico dagli utenti) e collegarla alla medesima della macchina host. L’opzione -d serve per impostare uno specifico ID al nuovo Container.
Senza considerare il restore del backup, la documentazione Tableau riporta che in 10-20 minuti Tableau Server verrà così inizializzato. A seconda delle dimensioni del backup da importare, sarà necessario più tempo per avere il nostro nuovo ambiente di testing pronto all’uso.
Possibili errori a cui stare attenti e ulteriori customizzazioni
DIRECTORY PRINCIPALE
Una volta inizializzata l’immagine e avviato il Docker tutti i file relativi a Tableau Server in a Container verranno posizionati nella directory /docker/ del nuovo container; ovviamente anche la cartella di customizzazione customer-files verrà copiata automaticamente sotto /docker/customer-files. È importante ricordare questo passaggio per settare i path giusti ai vari file e script che vorremo usare.
PERMESSI DI ESECUZIONE
I file di pre-init-command o post-init-command devono avere i permessi di esecuzione per tutti gli utenti. Per esserne certi, aggiungiamo il comando
chmod +rx /docker/customer-files/<pre-init-command> (*** o <post-init-command> ***)
allo script customer-files/setup-script.
DRIVERS
La versione base del setup-script che crea l’immagine di Tableau Server non prevede la pre-installazione di alcun connettore dati o drivers, ma come molti potranno immaginare, sarebbe consigliabile avere a disposizione almeno quello di PostgreSQL per poter usare le Viste Amministrative di Tableau. Per fare ciò i passaggi sono i seguenti:
- Scaricare il driver compatibile (.rpm e .jar) dalla pagina di Tableau https://www.tableau.com/en-us/support/drivers;
- Copiare il file nella directory customer-files nel Tableau Server in a Container setup tool, meglio se in una cartella dedicata ai drivers (customer-files/drivers);
- Editare il file customer-files/setup-script in modo che il driver venga installato nel container. Basterà aggiungere:
sudo yum install -y /docker/customer-files/<tableau-postgresql-odbc>.rpm
- Editare il file customer-files/post-init-command in modo da spostare il file .jar del driver dove Tableau si aspetta di trovarlo:
mkdir /docker/opt/tableau/tableau_driver/jdbc
mv /docker/customer-files/drives/<tableau-postgresql.jar> /docker/opt/tableau/tableau_driver/jdbc/<tableau-postgresql.jar>
Per continuare a leggere altri utili suggerimenti e continuare la tua formazione su Tableau, seguici sui nostri canali social LinkedIn e Facebook o iscriviti alla nostra nuova community LearnToViz, per commentare questo e gli altri contenuti con gli altri membri della piattaforma!