Tableau Server in een container – De set-up-tool gebruiken

Inleiding

Tableau Server in een container is het eerste containergebaseerde serveraanbod van Tableau. Tableau Server in een container is een alles-in-één Tableau Server-instantie die wordt uitgevoerd in een Linux Docker-container. Met andere woorden: een afbeelding van Tableau Server in een container is een Docker-afbeelding die een volledige, zelfstandige Tableau Server-toepassing uitvoert. Tableau Server in een container is de eerste stap in ons proces om het uitvoeren van Tableau Server in containergebaseerde omgevingen mogelijk te maken. De eenvoudigste manier om het concept van Tableau Server in een container te begrijpen, is door het te zien als een virtuele machine waarop Tableau Server vooraf is geïnstalleerd. De afbeelding is gebaseerd op een UBI 8-afbeelding (CentOS 7.x voor versie 2022.1 en lager) en voert supervisord uit (in plaats van systemd) in de container. Wanneer de container supervisord start, wordt er onmiddellijk geprobeerd om Tableau Server te initialiseren en te starten. Een groot deel van de documentatie hier beschrijft hoe u configuratie kunt bieden en automatisering kunt benutten, zodat u Tableau Server in Docker-omgevingen kunt uitvoeren.

Met de configuratietool van Tableau Server in een container-afbeelding kunt u container-afbeeldingen maken en aanpassen, zodat u aangepaste pakketten en artefacten kunt toevoegen. Een van de belangrijkste functies van de tool is het bouwen van de containerafbeelding en het installeren van aangepaste dataconnectors.

Beperkingen voor Tableau Server in een container

  • Tableau Server in een container ondersteunt alleen licentieactivering met behulp van Server ATR. Offline activering met Server ATR wordt ondersteund in 2023.1 en later. Deze functionaliteit is beschikbaar in containers, maar vereist extra stappen en goedkeuring. Als u Tableau Server in een container wilt uitvoeren in een niet-verbonden of offline omgeving, neem dan contact op met uw accountvertegenwoordiger voor meer informatie.
  • Tableau Server in een container ondersteunt momenteel de RMT-agent (Resource Monitoring Tool) niet.
  • Kerberos wordt niet ondersteund in Tableau Server in een container.

De set-up-tool voor Tableau Server in een container

De set-up-tool voor Tableau Server in een container, build-image, bouwt een aangepaste afbeelding van Tableau Server in een container van een Tableau .rpm-installatieprogramma en de meegeleverde configuratiebestanden.

De set-up-tool gebruikt een Tableau Server-installatieprogramma, uw stuurprogramma's en andere artefacten als invoer en maakt een Docker-afbeelding. Wanneer de build-image-tool correct wordt gebruikt, zal de nieuw gegenereerde afbeelding de gewenste artefacten hebben geïnstalleerd.

Ondersteunde distributies voor het bouwen

Het bouwen van de Docker-afbeelding van Tableau Server in een container wordt alleen ondersteund op een RHEL-gebaseerd Linux-systeem (RHEL, CentOS of Amazon Linux 2). Het is misschien wel mogelijk om de afbeelding op andere Linux-distributies te bouwen, maar dit is momenteel niet getest en wordt niet ondersteund. Het maken van afbeeldingen op macOS wordt niet ondersteund. De gemaakte afbeelding is gebaseerd op een UBI 8-image (CentOS 7.x voor versie 2022.1 en lager).

Docker-versie 18.09 of hoger moet op de host geïnstalleerd zijn om de containerafbeeldingen te kunnen bouwen. Over het algemeen raden wij aan om de nieuwste stabiele versie van Docker te gebruiken. Sommige Linux-distributies bieden alleen oudere versies van Docker aan in hun softwareopslagplaatsen. In dat geval moet u Docker mogelijk vanuit een andere bron installeren. Docker-versies ouder dan versie 18.09 bevatten niet de functies die vereist zijn voor Tableau Server in een container.

De benodigde bestanden downloaden

Om de set-up-tool te gebruiken, moet u zowel de tool als een compatibel serverinstallatieprogramma downloaden, een .rpm-bestand. Het installatiebestand moet versie 2021.2.0 of hoger zijn. Beide bestanden kunnen worden gedownload van de Tableau Server-pagina(Link wordt in een nieuw venster geopend).

  1. Download het Server-installatiebestand, tableau-server-<version>.rpm versie 2021.2.0 of hoger.

  2. Download de set-up-tool voor Server in een container, tableau-server-container-setup-tool-<version>.tar.gz.

Installatie

De set-up-tool voor Tableau Server in een container wordt geleverd als een tarball. U moet de inhoud van het gecomprimeerde bestand uitpakken. Hier is een voorbeeld waarbij ervan wordt uitgegaan dat de set-up-tool voor Tableau Server in een container zich in uw huidige directory bevindt:

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

Hiermee wordt een nieuwe directory gemaakt, tableau-server-container-setup-tool-<VERSION> met het build-image-script dat u gebruikt om de tool uit te voeren.

Het registratieformulier invullen

Bewerk het registratiebestand om uw unieke identificatiedata te verstrekken die nodig zijn om Tableau Server te registreren in overeenstemming met de licentieovereenkomst voor eindgebruikers. Het bestand, reg-info.json, dient als sjabloon voor uw vereiste, uniek identificeerbare registratiedata en bevindt zich in de hoofdmap van de set-up-tool voor Tableau Server in een container. Dit bestand wordt gebruikt om de Tableau Server-instantie te registreren die in de afbeelding wordt uitgevoerd. Het verstrekken van de juiste informatie zorgt ervoor dat het registratieproces correct verloopt.

De veldwaarde eula is vooraf ingevuld met 'accepteren' om aan te geven dat u akkoord gaat met onze licentieovereenkomst voor eindgebruikers (EULA). U kunt de EULA bekijken in de EULA-map van de build-tool. Zoals beschreven in de EULA moet u bij het activeren van Tableau Server een uniek identificeerbare gebruikersregistratie verzenden. Wanneer u klaar bent met het bewerken van het registratiebestand, moeten de overige velden waarden bevatten die uw unieke informatie weerspiegelen. Dit bestand wordt gebruikt om de Tableau Server-instantie te registreren die in de afbeelding wordt uitgevoerd. Het verstrekken van de juiste informatie zorgt ervoor dat het registratieproces wordt voltooid en dat uw aanvraag voldoet aan de vereisten voor de licentieverlening.

Opmerking: U moet de EULA accepteren om Tableau Server te kunnen gebruiken. Als u de EULA niet accepteert, kunt u Tableau Server niet uitvoeren.

Dit is het registratiebestandsjabloon reg-info.json voordat u het bewerkt:

{
"zip" : "<value>",
"country" : "<value>",
"city" : "<value>",
"last_name" : "<value>",
"industry" : "<value>",
"eula" : "accept",
"title" : "<value>",
"phone" : "<value>",
"company" : "<value>",
"state" : "<value>",
"department" : "<value>",
"first_name" : "<value>",
"email" : "<value>"
}

De tool gebruiken

Er is een uitvoerbaar script in de set-up-tool genaamd build-image. Als u dit uitvoert met de -h-optie wordt de Help weergegeven:

./src/build-image -h
Usage: build-image --accepteula -i [INPUT_IMAGE_NAME] -o [OUTPUT_IMAGE_NAME] [optional arguments]
Creates new Tableau Server image with pre-installed database drivers, configuration, and instructions.
REQUIRED

--accepteula              Indicate that you have accepted the End User License Agreement (EULA).

The EULA is available in the EULA directory of this tool.

-i installer              Path to the Tableau Server installer.

OPTIONAL

-o output name            Tag of target generated Tableau Server image.

-e environment file       Optional environment file to configuration overrides to docker image at build time.

-v setup tool version     Prints the Setup tool version.


-b base image version     Prints the default base image URL.

Basisvoorbeeld van gebruik:

./build-image --accepteula -i tableau-server-image.rpm

Het uitvoeren van de opdracht zonder artefacten of een installatiescript werkt wel, maar doet eigenlijk niets, omdat er geen extra resources naar de oorspronkelijke afbeelding van Tableau Server in een container worden gekopieerd of geïnstalleerd.

Indeling

Tableau biedt alleen documentatie en ondersteuning voor Tableau Server-containers die op Linux worden uitgevoerd. Tableau biedt geen documentatie of ondersteuning voor containersystemen zoals Kubernetes of Docker Swarm. Kubernetes kan echter wel worden gebruikt om Tableau Server in een container te implementeren. Raadpleeg ons door de community ondersteunde GitHub-project voor resources en begeleiding bij het implementeren van Tableau-containers in Kubernetes: https://github.com/tableau/tableau-server-in-kubernetes(Link wordt in een nieuw venster geopend).

De afbeelding aanpassen

Omgevingsvariabelen instellen tijdens het bouwen

Een subset van omgevingsvariabelen waarmee de afbeelding kan worden aangepast, kan alleen worden ingesteld wanneer de afbeelding wordt gebouwd. Dit omvat gebruiker, groep en andere eigenschappen waarvoor root-machtigingen vereist zijn binnen de container. Root-acties zijn niet standaard beschikbaar tijdens runtime. Daarnaast kan het handig zijn om bepaalde omgevingsvariabelen al tijdens het bouwen van de afbeelding in te bouwen, zodat ze niet telkens opnieuw ingesteld hoeven te worden als de afbeelding wordt uitgevoerd. Al deze omgevingsvariabelen kunnen worden ingesteld door een omgevingsbestand door te geven aan het build-image-script.

Omgevingsbestand

Het omgevingsbestand kan worden doorgegeven aan het build-image-script met behulp van het -e-argument. Het bestand moet voldoen aan dit formaat:

<KEY>=<VALUE>
<KEY>=<VALUE>
Voorbeeldgebruik:

Maak een omgevingsbestand met de juiste indeling:

UNPRIVILEGED_TABLEAU_UID=1012
UNPRIVILEGED_TABLEAU_GID=1020
TABLEAU_USERNAME=myuser
TABLEAU_PASSWORD=pw

Geef het bestand door aan de image-builder:

./build-image --accepteula -i tableau-server-2020-3.x86_64.rpm -e <path-to-env-file>
Omgevingsvariabelen

Elke omgevingsvariabele kan in het omgevingsbestand worden ingesteld. Bekijk het gedeelte Omgevingsvariabelen voor de volledige lijst.

Omgevingsvariabelen die tijdens het bouwen worden ingesteld, kunnen alleen worden ingesteld wanneer dit script wordt uitgevoerd om de afbeelding te bouwen:

OmgevingsnaamStandaardBeschrijving
BASE_IMAGE_URLGebruik de opdracht van de build-tool: build-image -bDe standaardafbeelding die is opgegeven in de build-image-tool en het Docker-bestand is de enige officieel ondersteunde basisafbeelding. Deze parameter kan worden gebruikt om een kopie van deze specifieke basisafbeelding uit een aangepaste docker-afbeeldingsopslagplaats te halen of om een aangepaste basisafbeelding te definiëren. Als u ervoor kiest om een aangepaste basisafbeelding te gebruiken (zie Een aangepaste basisafbeelding definiëren, voor meer informatie), is het uw verantwoordelijkheid om ervoor te zorgen dat deze is gebaseerd op UBI 8 (CentOS 7 of RHEL 7 voor versie 2022.1 en lager) en de benodigde resources bevat om Tableau Server correct uit te voeren.
PRIVILEGED_TABLEAU_GID997De GID van de Tableaugroep met rechten.
UNPRIVILEGED_TABLEAU_GID 998 De GID van de Tableaugroep zonder rechten.
UNPRIVILEGED_TABLEAU_UID 999 De UID van de gebruiker die Tableau-processen uitvoert (implementatie voor één gebruiker).
UNPRIVILEGED_USERNAME tableau De tekenreeksnaam van de gebruiker zonder rechten.
UNPRIVILEGED_GROUP_NAME tableau De tekenreeksnaam van de groep zonder rechten.
PRIVILEGED_GROUP_NAMEtsmadminDe tekenreeksnaam van de groep met rechten.
LANG en_US.UTF-8Landinstelling

Stuurprogramma's, certificaten en andere bestanden

De Tableau Server-afbeelding wordt niet geleverd met vooraf geïnstalleerde dataconnectors of stuurprogramma's. U moet een bash-configuratiescript maken dat het build-image-script instrueert om de dataconnectors te installeren die Tableau Server nodig heeft. Dit zijn de stappen die u hiervoor zou moeten nemen:

  1. Zorg ervoor dat de set-up-tool voor Tableau Server in een container correct is geïnstalleerd.

  2. Download het stuurprogramma van de Tableau-pagina met stuurprogramma's: https://www.tableau.com/nl-nl/support/drivers(Link wordt in een nieuw venster geopend).

  3. Kopieer het gedownloade stuurprogrammabestand naar de directory customer-files in de set-up-tool voor Tableau Server in een container.

    De directory customer-files wordt gekopieerd naar de docker-afbeelding. Deze bevindt zich in het volgende pad in de container: /docker/customer-files

  4. Bewerk het bestand in de set-up-tool voor Tableau Server in een container customer-files/setup-script om Docker te vertellen hoe het stuurprogramma geïnstalleerd moet worden.

    Het script is slechts een uitvoerbaar bash-bestand dat wordt uitgevoerd wanneer de Docker-afbeelding wordt gebouwd. (Technisch gezien kan het gebruikt worden om willekeurige acties in de afbeelding uit te voeren, inclusief het instellen van de omgeving, configuratie, etc.)

    Het script wordt uitgevoerd in de container. Houd er dus rekening mee dat de opdrachten moeten werken wanneer ze worden uitgevoerd in de afbeelding van Tableau Server in een container.

    Als u bijvoorbeeld een stuurprogramma met de naam mydriver.rpm wilt installeren, schrijft u het volgende in setup-script:

    yum install -y /docker/customer-files/mydriver.rpm
Tableau-beheerweergaven

Voor Tableau-beheerweergaven moet het PostgreSQL-stuurprogramma zijn geïnstalleerd. Als u van plan bent deze weergaven te gebruiken, moet u de bovenstaande stappen volgen en het PostgreSQL-stuurprogramma installeren. Zie Beheerweergaven voor meer informatie over beheerweergaven.

Een aangepaste basisafbeelding definiëren

De standaard basisafbeelding die wordt gebruikt om de Tableau Server-container te bouwen, is een UBI 8-afbeelding (CentOS 7.x voor versie 2022.1 en lager) afkomstig van Docker Hub. In sommige gevallen wilt u de build-image-tool mogelijk configureren om de afbeelding uit een andere docker-afbeeldingsopslagplaats te halen. Uw bedrijf kan bijvoorbeeld een interne docker-opslagplaats beheren en niet willen dat de build-image data ophaalt uit een openbare opslagplaats. Gebruik de volgende stappen om het pad voor de basisafbeelding aan te passen:

  1. Gebruik de volgende opdracht om de naam en versie van de huidige standaard basisafbeeling van de build-image-tool weer te geven:

    ./build-image -b
  2. Haal de exact overeenkomende naam en versie van de basisafbeelding uit Docker Hub en sla deze op/cache deze in uw favoriete afbeeldingsopslagplaats (conform het afbeeldingbeleid van uw bedrijf).

  3. Ga terug naar de build-image-tool. Maak of wijzig een bestaand omgevingsbestand om de BASE_IMAGE_URL-omgevingssleutel met de waarde ingesteld op een nieuw registerpad voor een Docker-afbeelding:

    BASE_IMAGE_URL=<custom-image-registry-path>
  4. Bouw de afbeelding met het omgevingsbestand:

    ./build-image --accepteula -i <rpm> -e <path-to-env-file>

Met deze stappen kunt u een compleet andere basisafbeelding opgeven. Deze mogelijkheid wordt alleen ondersteund voor op UBI 8 gebaseerde afbeeldingen (RHEL en CentOS 7.x voor versie 2022.1 en lager) en is bedoeld om klanten te helpen veiligere afbeeldingen te maken.

Als u een andere basisafbeelding gebruikt dan de standaardafbeelding die door Tableau wordt gespecificeerd, bestaat het risico dat er een afbeelding wordt geproduceerd die niet goed start of functioneert. Als u ervoor kiest om een aangepaste basisafbeelding te gebruiken, bent u er zelf verantwoordelijk voor dat de basisafbeelding ervoor zorgt dat Tableau Server correct kan worden uitgevoerd. Wij raden u aan de standaard basisafbeelding te gebruiken, tenzij dit om een of andere reden niet acceptabel is voor uw organisatie, bijvoorbeeld vanwege beveiligingsproblemen.

De aangepaste basisafbeelding moet gebaseerd zijn op UBI 8 (RHEL 7 of CentOS 7 voor versie 2022.1 en lager). Als u een andere distributie gebruikt, resulteert dit in een niet-ondersteunde afbeelding.

Interne opslagplaatsen voor yum en pip gebruiken

De afbeelding van Tableau Server in een container is geconfigureerd om de standaard yum- en pip-opslagplaatsen te gebruiken om afhankelijke pakketten op te halen. Als u opslagplaatsen wilt bewerken, verwijderen of toevoegen (interne opslagplaatsen kunnen bijvoorbeeld worden gebruikt om de beveiliging te verbeteren), moet u een van de initialisatiescripts van de set-up-tool voor afbeeldingen aanpassen.

Wijzig het script <setup_tool>/src/image/init/setup_default_environment.bash in de broncode om de interne opslagplaatsen te gebruiken. Bewaar alle opslagplaatsbestanden die nodig zijn voor de interne opslagplaats in de directory <setup_tool>/src/image/init/. Die directory wordt gekopieerd naar de docker-afbeelding.

Basisafbeeldingen en beveiliging

Veel klanten gebruiken containerscantools (zoals AquaScan of TwistLock) op de gegenereerde Docker-afbeelding van Tableau Server. Deze beveiligingstools genereren een rapport over mogelijke beveiligingsproblemen (ook wel Common Vulnerabilities and Exposures of CVE genoemd). Er zijn twee soorten beveiligingsproblemen gekoppeld aan een afbeelding van Tableau Server in een container:

  • CVE's die gekoppeld zijn aan Tableau Server of aan een bibliotheek waarvan we afhankelijk zijn.
  • CVE's die gekoppeld zijn aan de onderliggende Linux-distributie.

Tableau is verantwoordelijk voor CVE's die rechtstreeks aan Tableau Server zijn gekoppeld. Het beveiligingsteam analyseert deze rapporten om de impact en ernst ervan te bepalen. Zo kunnen we de problemen prioriteren en oplossen. De prioriteit en tijdlijnen voor basisherstel worden bepaald aan de hand van de oorspronkelijke CVSS-ernstscore. Beveiligingsupdates voor componenten van derden worden doorgaans niet teruggezet naar lagere versies, tenzij er een uitvoerbaar codepad is dat de kwetsbaarheid blootlegt.

Met het containerdistributiemodel worden klanten geconfronteerd met andere uitdagingen rondom kwetsbaarheden in de besturingssysteemlaag. Traditioneel gezien richt Tableau Server zich op het leveren van een veilige toepassing en is de klant verantwoordelijk voor het beheer van de besturingssystemen (Linux of Windows). Bij containerisatie worden het besturingssysteem (UBI 8 vanaf versie 2023.3, CentOS 7.x of RHEL 7.x voor versie 2022.1 en lager) en de applicatie echter in één container verpakt. Tableau is verantwoordelijk voor de CVE die aan Tableau Server is gekoppeld en voor het bepalen of een CVE van een externe bibliotheek gevolgen zou hebben voor klanten. Klanten zijn echter zelf verantwoordelijk voor problemen met de besturingssysteemlaag. Om de beveiligingsproblemen in de besturingssysteemlaag aan te pakken, kunnen klanten de basis besturingssysteemlaag vervangen door hun eigen versie (gebaseerd op UBI 8 voor versie 2022.3 en hoger, RHEL of CentOS 7.x voor versie 2022.1 en lager). Hierbij moet u controleren of Tableau Server correct werkt. Het verwijderen van een bibliotheek waarvan Tableau Server afhankelijk is vanwege beveiligingsproblemen, kan resulteren in een niet-functionerende instantie van Tableau Server. Als de basislaag van het besturingssysteem wordt gewijzigd, zijn klanten verantwoordelijk voor het controleren van de werking ervan.

Beveiligingsversterking voor Tableau Server in een container

U kunt de standaardstappen voor beveiligingsversterking toepassen op Tableau Server in een container. Zie Controlelijst voor het versterken van de beveiliging voor meer informatie over het versterken van de beveiliging van Tableau Server.

Voorbeelden van implementatieconfiguraties

Docker

Basisgebruik van Tableau Server in een container
docker run \
-e LICENSE_KEY=<key>
-p 8080:8080
-d <Tableau Server in a Container image ID or tag>
Basisgebruik van Tableau Server in een container met geautomatiseerde initiële beheerdersgebruiker
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>
Alleen TSM-modus
docker run \
-e TSM_ONLY=1 \
-p 8080:8080 -d <Tableau Server in a Container image ID or tag>
Basisgebruik van meerdere knooppunten
Eerste knooppunt

Optie 1: Gebruik dit als de serverconfiguratie (CONFIG_FILE) een topologie met meerdere knooppunten specificeert:

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=<name-of-host-machine> \
-d <Tableau Server in a Container image ID or tag>

Optie 2: Gebruik dit als u een implementatie met meerdere knooppunten wilt, zelfs als de serverconfiguratie geen topologie met meerdere knooppunten specificeert:

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=<name-of-host-machine> \
-d <Tableau Server in a Container image ID or tag>
Extra knooppunt
docker run \
-v <network-shared-directory>:/docker/config/bootstrap \
-e BOOTSTRAP_INSTALL=1 \
-p 8080:8080 -p 8800-9000:8800-9000 \
--hostname=<name-of-host-machine> \
-d <Tableau Server in a Container image ID or tag>
Datagebruik externaliseren
docker run \
-v <empty-data-dir>:/var/opt/tableau \
-e LICENSE_KEY=<key> \
--hostname=localhost \
-p 8080:8080 -d <Tableau Server in a Container image ID or tag>
Basisgebruik van Eerste container

Eerste container

docker run \
-v <empty-data-dir>:/var/opt/tableau \
-e LICENSE_KEY=<key> \
-e INIT_CONTAINER=1 \
--hostname=localhost \
-p 8080:8080 -d <Tableau Server in a Container image ID or tag>

Container uitvoeren

docker run \
-v <empty-data-dir>:/var/opt/tableau \
--hostname=localhost \
-p 8080:8080 -d <Tableau Server in a Container image ID or tag>
Basisherstel van back-up met één knooppunt
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-samenstelling

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>

 

 

Bedankt voor uw feedback.De feedback is verzonden. Dank u wel.