Tableau Server in een container - Een afbeelding 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 (VM) 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.

Zie Tableau Server in een container – Snelle start om de afbeelding van Tableau Server in een container snel te testen in een Proof of Concept-scenario.

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.

Afbeelding van Tableau Server in een container

De afbeelding van Tableau Server in een container is een Docker-afbeelding die de gehele Tableau Server bevat. De afbeelding wordt gebouwd met behulp van de set-up-tool voor Tableau Server in een container. Wanneer de afbeelding is gebouwd, bevat hij Tableau Server, maar is nog niet geïnitialiseerd. De standaardgebruiker in een afbeelding van Tableau Server in een container is een niet-rootgebruiker zonder rechten.

Vereisten

Het script configure-container-host uitvoeren

Wanneer Tableau Server zonder container wordt geïnstalleerd, worden bepaalde resourcelimieten en coredumpeigenschappen gewijzigd als onderdeel van het installatieproces. Dit wordt gedaan om de prestaties van Tableau Server te optimaliseren. Een afbeelding van Tableau Server in een container heeft niet de mogelijkheid om deze wijzigingen op de hostmachine door te voeren. Daarom raden we aan om het script configure-container-host uit te voeren dat is meegeleverd in de set-up-tool voor Tableau Server in een container op elke machine waarop een afbeelding van Tableau Server in een container wordt uitgevoerd. Hiermee wordt ervoor gezorgd dat de prestaties van de afbeelding van Tableau Server in een container gelijk zijn aan de versie zonder container.

Om het script configure-container-host uit te voeren, doet u het volgende:

  1. Zoek het script (configure-container-host) in de hoofddirectory van de set-up-tool voor Tableau Server in een container.
  2. Kopieer het naar de omgevingen waarin u Tableau Server wilt uitvoeren.

  3. Bepaal het gebruikersaccount zonder rechten/UID dat als standaardgebruiker van de afbeelding van Tableau Server in een container zal worden uitgevoerd. Deze gebruiker moet op de hostmachine bestaan en moet overeenkomen met de UID die is ingesteld in de omgevingsvariabele van de Tableau Server-container UNPRIVILEGED_TABLEAU_UID. Als u dit niet hebt ingesteld bij het maken van uw Docker-afbeelding, is de standaard gebruikers-ID zonder rechten in de container 999. Als u Docker-gebruikerstoewijzing gebruikt, moet deze UID overeenkomen met de gebruiker die op de hostcomputer bestaat.

  4. Voer het script uit als root:

    sudo ./configure-container-host -u <uid>

De afbeelding uitvoeren

Om een docker-afbeelding van Tableau Server in een container uit te voeren, is de eenvoudigste opdracht om een afbeelding van Tableau Server in een container uit te voeren de volgende:

docker run \
-e LICENSE_KEY=<key>
-p 8080:8080
-d <Tableau Server in a Container image ID or tag>

Docker wordt op de achtergrond uitgevoerd en na enige tijd is er een volledig geïnstalleerd exemplaar van Tableau Server beschikbaar. Het kan 10 tot 20 minuten duren voordat Tableau Server volledig is opgestart, afhankelijk van de hardware van de computer waarop de afbeelding wordt uitgevoerd. U kunt bevestigen dat de container actief is door de opdracht docker ps in te typen. Zodra Tableau Server operationeel is, moet het initiële Tableau Server-beheerdersaccount worden aangemaakt. Deze stap kan geautomatiseerd worden. Zie De initiële Tableau Server-beheerder automatiseren voor meer informatie.

Samenvatting van basisuitvoerargumenten

Alle opties die in de Docker-uitvoeropdracht worden gebruikt, zijn noodzakelijk. Vaak worden er meer opties geboden om verschillende functionaliteiten in de afbeelding te benutten. Nu gaan we dieper in op de argumenten die worden gebruikt in de eenvoudigste Docker uitvoeropdracht voor Tableau Server in een container:

ArgumentBeschrijving
-e LICENSE_KEY=<key>Tableau Server moet gelicentieerd zijn. In deze omgevingsvariabele wordt de sleutel opgeslagen die wordt gebruikt om de server te licentiëren. Dit is een vereist onderdeel van het initialisatieproces. U kunt meerdere licenties opgeven, gescheiden door een komma.
-p 8080:8080Hiermee krijgt Docker de opdracht om poort 8080 in de container beschikbaar te stellen en deze te koppelen aan poort 8080 op de hostmachine. De eerste 8080-waarde is configureerbaar. Als u deze wijzigt, wordt de poort die op de host is toegewezen, aangepast. Tableau Server verwacht standaard gebruikersverkeer te ontvangen op poort 8080 in de container. U kunt kiezen of u deze poort op een andere hostpoort wilt weergeven of helemaal niet.

 

De initiële Tableau Server-beheerder automatiseren

Wanneer Tableau Server voor de eerste keer wordt opgestart, moet er een initiële beheerdersgebruiker worden aangemaakt voordat externe netwerkverbindingen met Tableau Server zijn toegestaan. Dit kan worden gedaan door middel van de opdracht tabcmd initialuser -s localhost:8080 -u <username> -p <password> in de container. U kunt ook beheerdersreferenties instellen via omgevingsvariabelen. TABLEAU_USERNAME en TABLEAU_PASSWORD of TABLEAU_PASSWORD_FILE (bij voorkeur) zijn de omgevingsvariabelen die kunnen worden ingesteld om de initiële beheerdersreferenties door te geven. Zie Wachtwoordbeheer voor meer informatie over wachtwoordbeheer.

Zie initialuser voor meer informatie over de opdracht tabcmd initialuser.

Voorbeeld

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>

Licentieverlening

Licentieverlening in containers

Licentieverlening voor Tableau Server in een container gebruikt de Server-Authorization-To-Run (ATR)-service om Tableau Server geïmplementeerd in de cloud, containers of virtuele omgevingen te activeren, zonder dat de licentieactiveringen opraken. De ATR-service bereikt dit door kortetermijnleases met een configureerbare duur (ATR-duur) aan te bieden, totdat de vervaldatum van de productcode is bereikt. ATR abstraheert Tableau-licenties van onderliggende hardwarewijzigingen, wat een fundamenteel aspect is van containerimplementaties. Omdat Server ATR vereist dat de container de ATR-service kan bereiken die wordt gehost door Tableau, hebben de containers internettoegang nodig. Tableau Server in een container ondersteunt geen offline of handmatige activering. Zie Tableau Server activeren met behulp van de ATR-service (Authorization-To-Run) voor meer informatie.

Belangrijk: U moet ofwel de LICENSE_KEY of LICENSE_KEY_FILE omgevingsvariabelen opgeven (stel slechts één van de twee in).

Als u bij het upgraden van Tableau Server in een container het maximale aantal activeringen voor uw licentie hebt gebruikt, kan Tableau Server niet starten totdat de ATR-duur is verstreken (standaard 4 uur/14.400 seconden). Zie Tableau Server activeren met behulp van de ATR-service (Authorization-To-Run)(Link wordt in een nieuw venster geopend) voor meer informatie over het instellen of wijzigen van de ATR-duur.

Licentie-omgevingsvariabele

Tableau Server in een container ondersteunt het instellen van productcodes met behulp van een omgevingsvariabele: de LICENSE_KEY kan een of meer sleutels bevatten (-e LICENSE_KEY="<key1> ,<key2> ") via een door komma's gescheiden lijst.

Voorbeeld

docker run \
-e LICENSE_KEY="<key1>, <key2>" \
-p 8080:8080 -d <Tableau Server in a Container image ID or tag>

Licentiebestand

Tableau Server in een container ondersteunt ook het instellen van productcodes met behulp van een bestand. Koppel een bestand aan de standaardlocatie van het productcodebestand in de container (/docker/config/license_file) of zoals anderszins gespecificeerd door de omgevingsvariabele LICENSE_KEY_FILE.

Voorbeeld

docker run \
-v <full-path-to-license-file>:/docker/config/license_file \
-p 8080:8080 -d <Tableau Server in a Container image ID or tag>

Aangevraagde leasetijd van de licentie

U kunt de leasetijd van de ATR-licentie in een Tableau Server-container opgeven door de omgevingsvariabele REQUESTED_LEASE_TIME in te stellen. U moet de leasetijd in seconden opgeven, waarbij de minimale duur 3600 seconden (of 1 uur) bedraagt. Het wordt aanbevolen om de leasetijd te verkorten wanneer u met Tableau Server experimenteert en tests uitvoert. Zo verkleint u de kans dat u de maximaal geactiveerde leaselimiet bereikt. Voor productie-implementaties wordt ten zeerste aanbevolen om de REQUESTED_LEASE_TIME-parameter in te stellen (dus met gebruik van de standaardwaarde), zodat Tableau de ideale leasetijd kan bepalen.

Voorbeeld

docker run \
...
-e REQUESTED_LEASE_TIME=<time-in-seconds> \
-p 8080:8080 -d <Tableau Server in a Container image ID or tag>

Een niet-geïnitialiseerde afbeelding uitvoeren

Tableau Server kent twee installatiefasen. Eerst worden de Tableau Service Manager (TSM)-services geïnstalleerd. Bij een typische on-premise-installatie is dit de stap waarin serverbeheerders hun server registreren, hun licenties activeren en de server configureren zodat deze zich gedraagt zoals zij dat willen. De tweede fase van de installatie is het instellen en starten van de Tableau Server-processen die het eindgebruikersverkeer en de bijbehorende bedrijfslogica verwerken.

Het standaardgedrag van afbeeldingen van Tableau Server in een container is om alle installatiestappen te automatiseren, zodat de docker run-opdracht uiteindelijk resulteert in een volledig functionele server. Als u echter een afbeelding van Tableau Server in een container wilt starten en deze alleen de TSM-services wilt laten uitvoeren (wat een serverbeheerder zou verwachten als alleen initialize-tsm uitgevoerd zou worden), kunt u dit doen door de TSM_ONLY-vlag als een omgevingsvariabele aan te duiden.

Bijvoorbeeld:

docker run \
-e TSM_ONLY=1 \
-p 8080:8080 -d <Tableau Server in a Container image ID or tag>

Interactie met de afbeelding

Wanneer u een afbeelding van Tableau Server in een container uitvoert, kunt u TSM- en tabcmd-opdrachten rechtstreeks oproepen. Deze tools worden rechtstreeks toegevoegd aan het omgevingspad van de pid 1-gebruiker (die op dit moment root is). Dit betekent dat u TSM- en tabcmd-opdrachten als volgt kunt oproepen:

docker exec -it <container> tsm status -v
docker exec -it <container> tabcmd initialuser -s localhost -u <admin> -p <secret>

Het is ook mogelijk om een shell in de container te openen om meer algemene handelingen uit te voeren. Dit wordt over het algemeen niet aanbevolen, behalve bij het debuggen:

docker exec -it <container> bash

TSM-webgebruikersinterface en externe CLI

De TSM-webgebruikersinterface en de externe CLI zijn standaard niet toegankelijk. Dit komt doordat er een gebruikersnaam en wachtwoord nodig zijn voor verificatie en standaard krijgt de gebruiker die Tableau Server-processen in de container uitvoert geen wachtwoord. Dit gebeurt om veiligheidsredenen (we raden af om afbeeldingen te verzenden met een standaardwachtwoord erin, omdat dit externe toegang zou toestaan). In sommige gevallen kunnen de TSM-webgebruikersinterface en het uitvoeren van externe toegangsoproepen via de TSM CLI nuttig zijn. Als u deze functies wilt gebruiken, moet u de onderstaande stappen volgen om een gebruikersaccount voor externe toegang aan te maken.

Zie Aanmelden bij webgebruikersinterface van Tableau Services Manager voor meer gedetailleerde informatie over de TSM-web-UI en CLI.

Een externe TSM-gebruiker aanmaken

Geef de TSM_REMOTE_UID en TSM_REMOTE_USERNAME omgevingsvariabelen op wanneer u de afbeelding van Tableau Server in een container bouwt met behulp van de set-up-tool. Voor het aanmaken van een TSM-account in de afbeelding is toegang met rechten in de afbeelding vereist die niet beschikbaar is tijdens runtime. Daarom kan dit alleen worden gedaan wanneer de Docker-afbeelding wordt gebouwd met behulp van de set-up-tool (build-image) voor Tableau Server in een container.

Voorbeeld van environment-bestand in set-up-tool voor Tableau Server in een container:

TSM_REMOTE_UID=1010
TSM_REMOTE_USERNAME=myuser

Het wachtwoord voor de externe TSM-gebruiker instellen

Voor de afbeelding van Tableau Server in een container is een wachtwoord voor het account vereist wanneer de afbeelding wordt uitgevoerd. Er zijn twee manieren om het wachtwoord voor dit account in te stellen.

Geheimenbestand (aanbevolen)

Maak een bestand met de naam remote-user-secret, schrijf het wachtwoord in het bestand en koppel het tijdens runtime aan de container. TSM_REMOTE_PASSWORD_FILE bepaalt de verwachte locatie (standaardlocatie is /docker/config/remote-user-secret) van het geheimenbestand in de container.

Voorbeeld van een geheimenbestand voor een externe gebruiker:

mypassword

Voorbeeld van docker-uitvoer-opdracht:

docker run \
-e LICENSE_KEY=<key>
-v {absolute-path}/remote-user-secret:/docker/config/remote-user-secret
-p 8080:8080 \
-p 8850:8850 \
-d <Tableau Server in a Container image ID or tag>
Omgevingsvariabele

U kunt ook eenvoudig de omgevingsvariabele TSM_REMOTE_PASSWORD instellen bij het starten van de docker-afbeelding.

Voorbeeld van docker-uitvoer-opdracht:

docker run \
-e LICENSE_KEY=<key>
-e TSM_REMOTE_PASSWORD=<password>
-p 8080:8080 \
-p 8850:8850 \
-d <Tableau Server in a Container image ID or tag>

Opmerkingen over beveiliging

  • Poort 8850 moet beschikbaar zijn om TSM-aanvraagverkeer te kunnen ontvangen.
  • Als het wachtwoord tijdens runtime niet correct is ingesteld in de afbeelding, wordt de container onmiddellijk afgesloten.
  • TSM is afhankelijk van het Linux-gebruikersaccountsysteem van de afbeelding. In dit geval is het account beperkt tot de afbeelding. Dit betekent dat het account een beperkte shell heeft en slechts twee opdrachten kan uitvoeren: /bin/true en passwd.

Het wachtwoord van de externe TSM-gebruiker roteren

Als u het accountwachtwoord van de externe TSM-gebruiker wilt roteren, kunt u dit op een van de volgende manieren doen:

Een nieuwe Tableau Server in een container starten

Het wachtwoord van het account wordt elke keer dat de container wordt opgestart, ingesteld. Als u Tableau-gegevens buiten de container opslaat, wordt het wachtwoord effectief geroteerd als u een nieuwe afbeelding start met een nieuw wachtwoord.

  1. Sluit de actieve afbeelding af en verwijder deze.
  2. Stel een nieuwe wachtwoordwaarde in voor de omgevingsvariabele TSM_REMOTE_PASSWORD of TSM_REMOTE_PASSWORD_FILE (zie hierboven) in uw afbeeldingsconfiguratie.
  3. Start de afbeelding opnieuw.
Het wachtwoord handmatig roteren in een actieve container

Als u de afbeelding niet wilt afsluiten, kunt u het wachtwoord nog steeds handmatig roteren.

  1. Open een shell in de actieve container.
  2. Log in met het externe gebruikersaccount met behulp van de opdracht su
  3. Voer de opdracht passwd uit om het wachtwoord te wijzigen.

    Waarschuwing: Deze handmatige rotaties blijven alleen bestaan zolang de schrijflaag van de containerinstantie blijft bestaan. Als u de container verwijdert, worden de handmatige wijzigingen niet toegepast wanneer een nieuwe container wordt gestart.

 

Initiële configuratieopties

Het configureren van Tableau Server in een container is essentieel om Tableau Server het gewenste gedrag te laten vertonen. Tableau Server in een container is een schone installatie van Tableau Server. U moet dus dezelfde informatie aan de container verstrekken als wanneer u Tableau Server buiten een container configureert.

Runtime-omgevingsvariabelen

De onderstaande runtime-omgevingsvariabelen vertellen de afbeelding van Tableau Server in een container hoe Tableau Server moet worden geïmplementeerd. Een deel hiervan wordt hieronder gedetailleerder beschreven.

Al deze waarden zijn zo ontworpen dat ze kunnen worden overschreven, zodat er meer flexibiliteit is bij de configuratie.

OmgevingsnaamStandaardBeschrijving
ACCEPTEULA0Wordt automatisch ingesteld op 1 wanneer een afbeelding wordt gebouwd met behulp van de set-up-tool voor Tableau Server in een container.
LICENSE_KEY Ingesteld op de productcode die gebruikt wordt om de server te licentiëren. Accepteert meerdere licenties, gescheiden door komma's.
LICENSE_KEY_FILE/docker/config/license_file Bestandspad naar licentiebestand. De indeling van het licentiebestand moet bestaan uit één productcode per regel.
REGISTRATION_FILE/docker/config/tableau_reg.jsonBestandspad naar het registratiebestand in de afbeelding. Standaard bevat dit de registratiedata die zijn verstrekt toen de afbeelding van Tableau Server in een container werd gebouwd. Dit kan tijdens de uitvoering worden overschreven. Zie Tableau Server activeren en registreren voor meer informatie.
REGISTRATION_DATA Een alternatieve manier om registratiedata tijdens runtime te overschrijven. Deze omgevingsvariabele moet worden ingesteld op een geserialiseerde JSON-tekenreeks die dezelfde registratiedata bevat als een registratiebestand van Tableau Server. Zie Tableau Server activeren en registreren voor meer informatie.
TABLEAU_USERNAME Dit verwijst naar het initiële beheerdersaccount op Tableau Server. Dit wordt aanbevolen, maar is optioneel. Als deze gebruiker niet is ingesteld, moet het initiële beheerdersaccount voor Tableau Server worden ingesteld met tabcmd. Als deze variabele op een waarde is ingesteld, is er ook een wachtwoord vereist. Dit wordt alleen gebruikt wanneer Tableau Server voor de eerste keer wordt geïnitialiseerd. Als u deze waarde instelt, krijgt Tableau Server in een container de opdracht om automatisch te proberen de gebruiker te initialiseren. Zie Een beheerdersaccount toevoegen voor meer informatie.
TABLEAU_PASSWORD Een wachtwoord in platte tekst voor de Tableau-gebruiker. Dit verwijst naar het initiële beheerdersaccount op Tableau Server. Dit is vereist als TABLEAU_USERNAME is gespecificeerd. Zie Een beheerdersaccount toevoegen voor meer informatie.
TABLEAU_PASSWORD_FILE Een bestandspad naar een bestand dat alleen de wachtwoordtekst voor de Tableau-gebruiker bevat. Dit verwijst naar het initiële beheerdersaccount op Tableau Server. Dit is vereist als TABLEAU_USERNAME is gespecificeerd. Zie Een beheerdersaccount toevoegen voor meer informatie.
CONFIG_FILE/docker/config/config.json

Bestandspad naar standaard TSM-configuratiebestand. Het bestand wordt gebruikt om Tableau Server te configureren. Zie Voorbeeld van configuratiebestand voor meer informatie.

Stel CONFIG_DATA niet in als CONFIG_FILE is gebruikt.

CONFIG_DATA Dit kan worden gebruikt als alternatief voor CONFIG_FILE. Als u de configuratie aan de server wilt doorgeven zonder een extern bestand te koppelen, stelt u deze omgevingsvariabele in op de equivalente geserialiseerde inhoud van een TSM-configuratiebestand.

Voorbeeld CONFIG_DATA="{\"configEntities\":{\"identityStore\":{\"_type\":\"identityStoreType\",\"type\":\"local\"}}}" Zie Voorbeeld van configuratiebestand voor meer informatie.

Stel CONFIG_FILE niet in als CONFIG_DATA is gebruikt.

IGNORE_TOPOLOGY_CONFIG00 of 1. Als dit op 1 is ingesteld, negeert de container alle topologiegerelateerde configuraties die aanwezig zijn in het configuratiebestand dat is aangewezen door CONFIG_FILE.
BACKUP_FILE/docker/config/backup/backup-file.tsbakEen bestandspad naar een Tableau Server-back-upbestand (.tsbak). Als u dit tijdens de initialisatie opgeeft, probeert de server een herstel uit te voeren.
INIT_CONTAINER00 of 1. Als deze optie is ingesteld op 1, probeert Tableau Server alleen TSM te initialiseren en wordt de container na voltooiing afgesloten.
TSM_ONLY00 of 1. Dit komt overeen met het installeren van de Tableau Server rpm en het uitvoeren van initialize-tsm. Alleen de TSM-services (Tableau Service Manager) worden gestart. Werkt ALLEEN als de container voor de eerste keer wordt geïnitialiseerd (dit werkt niet als een Tableau Server in een container wordt opgestart met een eerder geïnitialiseerde serverdirectory).
BOOTSTRAP_INSTALL00 of 1. Geeft aan of de server een eerste knooppunt of een extra knooppunt is. Als dit op 1 is ingesteld, wacht de container totdat er een bootstrap-bestand bestaat op de locatie die is opgegeven door $BOOTSTRAP_FILE.
ALWAYS_WRITE_BOOTSTRAP_FILE0 0 of 1. Als dit op 1 is ingesteld, schrijft de container een bootstrap-bestand naar de locatie die is opgegeven in BOOTSTRAP_FILE.
WAIT_FOR_BOOTSTRAP_FILE10 of 1. Als dit op 1 (standaard) is ingesteld, is het een worker-installatie als de container dit detecteert (BOOTSTRAP_INSTALL=1). De container wacht totdat er een bestand wordt gedetecteerd dat zich op het ingestelde pad in BOOTSTRAP_FILE bevindt. Als dit op 0 staat, wordt het wachten overgeslagen wanneer het opstartproces wordt uitgevoerd. Dit kan in sommige debug-gevallen nuttig zijn.
BOOTSTRAP_FILE/docker/config/bootstrap/bootstrap.jsonBestandspad naar bootstrap-bestand. Geldt alleen voor worker-containers. Dit bestand mag alleen naar een bootstrap-bestand verwijzen. Het typische gebruik zou zijn om de directory van het doelbestand (standaard zou dit /docker/config/bootstrap zijn) te koppelen aan de host.
BOOTSTRAP_DATADit kan gebruikt worden als alternatief voor BOOTSTRAP_FILE. Als u een bootstrap-bestand wilt doorgeven zonder een extern bestand te koppelen, stelt u deze omgevingsvariabele in op de equivalente geserialiseerde inhoud van een TSM-bootstrap-bestand. Stel BOOTSTRAP_DATA niet in als BOOTSTRAP_FILE is gebruikt.
PORT_RANGE_MIN8800 Om prestatieredenen raden we aan om slechts 200 poorten (8800-9000) beschikbaar te stellen in plaats van het standaardpoortbereik van 8000-9000 van Tableau Server On-Premise, omdat het beschikbaar stellen van 1000 poorten in Docker een negatieve invloed kan hebben op de opstarttijd van de Docker-afbeelding. Zie Licentieverlening en TSM-poorten beschikbaar stellen voor meer informatie.
PORT_RANGE_MAX9000We raden aan om slechts 200 poorten (8800-9000) beschikbaar te stellen in plaats van het standaardpoortbereik van 8000-9000 van Tableau Server On-Premise, omdat het beschikbaar stellen van 1000 poorten in Docker een negatieve invloed kan hebben op de opstarttijd van de Docker-afbeelding. Zie Licentieverlening en TSM-poorten beschikbaar stellen voor meer informatie.
HTTP_PROXY Om http-verzoeken door te sturen naar uw proxyserver, stelt u deze omgevingsvariabele in om naar uw proxyhost te verwijzen. Bijvoorbeeld HTTP_PROXY=http://example-host:8080/ om de proxy in te stellen op example-host voor poort 8080.
HTTPS_PROXY Om https-verzoeken door te sturen naar uw proxyserver, stelt u deze omgevingsvariabele in om naar uw proxyhost te verwijzen. Bijvoorbeeld HTTPS_PROXY=http://example-host:443/ om de proxy in te stellen op example-host voor poort 443. U moet 'http' gebruiken wanneer u de URL voor de omgevingsvariabele HTTPS_PROXY gebruikt.
NO_PROXY Om de proxyserver te omzeilen, specificeert u uitzonderingen in de variabele no_proxy. Gebruik deze variabele als uw proxyserver geen interne adressen routeert. U moet ook uitzonderingen toevoegen aan deze proxyconfiguratie om te garanderen dat alle communicatie binnen een lokaal Tableau Server-cluster (als u er nu al een hebt of er later een krijgt) niet naar de proxyserver wordt geleid. Voer zowel de hostnaam als het IP-adres voor elke computer in en voeg de hostnaam van de container toe. Vermeld daarnaast de canonieke hostnaam (lokale host) en het IP-adres (127.0.0.1) voor de lokale computer. Bijvoorbeeld: NO_PROXY="localhost,127.0.0.1,hostname1,hostname2,hostname3,IP1,IP2,IP3" om uitzonderingen voor een cluster met drie knooppunten op te geven.
COORDINATION_SERVICE_CLIENT_PORTElke poort tussen PORT_RANGE_MIN en PORT_RANGE_MAX .Clientpoort voor de coördinatieservice.
COORDINATION_SERVICE_PEER_PORTElke poort tussen PORT_RANGE_MIN en PORT_RANGE_MAX .Peerpoort voor de coördinatieservice.
COORDINATION_SERVICE_LEADER_PORTElke poort tussen PORT_RANGE_MIN en PORT_RANGE_MAX .Leiderpoort voor de coördinatieservice.
LICENSE_SERVICE_VENDOR_DAEMON_PORTElke poort tussen PORT_RANGE_MIN en PORT_RANGE_MAX .Daemonpoort van de leverancier voor de licentieservice.
AGENT_FILE_TRANSFER_PORTElke poort tussen PORT_RANGE_MIN en PORT_RANGE_MAX .Bestandsoverdrachtpoort voor de agentservice.
CONTROLLER_PORTElke poort tussen PORT_RANGE_MIN en PORT_RANGE_MAX .https-poort voor de controllerservice.
REQUESTED_LEASE_TIMEStandaard is dit momenteel op 4 uur ingesteld.Stel de aangevraagde leasetijd in voor Server ATR-activeringen. U moet de tijdswaarde in seconden opgeven. De minimale duur is 14.400 seconden (4 uur). Het wordt over het algemeen afgeraden om deze waarde te wijzigen voor productie-implementaties. Wanneer u echter Tableau Server in een container ontwikkelt of een prototype maakt, wilt u deze waarde mogelijk op de minimumwaarde instellen om het verlies van activeringen tot een minimum te beperken.

Readonly-omgevingsvariabelen

Dit zijn omgevingseigenschappen die enkele basiseigenschappen van de afbeelding van Tableau Server in een container beschrijven. Het wordt afgeraden om deze waarden te overschrijven.

OmgevingsnaamStandaardBeschrijving
PRE_INIT_COMMAND_SCRIPT${DOCKER_CONFIG}/customer-files/pre_init_commandPad naar een aangepast bash-/uitvoerbaar bestand dat in Tableau Server moet worden uitgevoerd vóór de initialisatie van Tableau Server. Opmerking: Controleer dat het bestand uitvoeringsrechten heeft voor alle gebruikers, zo niet, voer dan chmod +rx <path-to-pre-init-command-file> uit.
POST_INIT_COMMAND_SCRIPT${DOCKER_CONFIG}/customer-files/post_init_commandPad naar een aangepast bash-/uitvoerbaar bestand dat in Tableau Server moet worden uitgevoerd nadat de server volledig functioneel en actief is. Opmerking: Controleer dat het bestand uitvoeringsrechten heeft voor alle gebruikers, zo niet, voer dan chmod +rx <path-to-post-init-command-file> uit.
DATA_DIR/var/opt/tableau/tableau_serverDe datadirectory waar Tableau Server-bits naartoe moeten worden geschreven.
INSTALL_DIR/opt/tableau/tableau_serverDe installatiedirectory waar de installatiebits van Tableau Server naartoe worden geschreven.
SERVICE_NAMETableau ServerNaam van de toepassing die in de container wordt uitgevoerd.
SERVICE_VERSIONN.v.t.Versie van Tableau Server die is geïnstalleerd in de container.
DOCKER_CONFIG/dockerMap waarin de Tableau-specifieke Docker-configuratie wordt opgeslagen.
ENV_FILE${DOCKER_CONFIG}/customer-files/environmentBestand dat alle overschrijvingen van de gebruikersomgeving bevat.

Omgevingsvariabelen tijdens het bouwen

   
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, is het uw verantwoordelijkheid om ervoor te zorgen dat deze is gebaseerd op UBI 8 (CentOS of RHEL 7 voor versie 2022.1 en lager) en de benodigde resources bevat om Tableau Server correct uit te voeren. Zie Tableau Server in een container - Een afbeelding gebruiken voor meer informatie over aangepaste basisafbeeldingen.
PRIVILEGED_TABLEAU_GID997 De GID van de Tableaugroep met rechten.
UNPRIVILEGED_TABLEAU_GID998 De GID van de Tableaugroep zonder rechten.
UNPRIVILEGED_TABLEAU_UID999 De UID van de gebruiker die Tableau-processen uitvoert (implementatie voor één gebruiker).
UNPRIVILEGED_USERNAMEtableau De tekenreeksnaam van de gebruiker zonder rechten.
UNPRIVILEGED_GROUP_NAMEtableau De tekenreeksnaam van de groep zonder rechten.
PRIVILEGED_GROUP_NAMEtsmadmin De tekenreeksnaam van de groep met rechten.
LANGen_US.UTF-8Landinstelling

 

Overschrijvingen tijdens de configuratie van Tableau Server

Deze omgevingsvariabelen kunnen door Docker worden overschreven, zodat ze naar elk bestand in de container verwijzen. Als u een ander koppelpunt wilt opgeven, kunt u dat gerust doen.

Tableau Server heeft een configuratiebestand nodig om te starten en voor het uitvoeren:

CONFIG_FILE=/docker/config/config.json

CONFIG_FILE verwijst naar een TSM-configuratiebestand. Het formaat en gebruik zijn identiek aan het configuratiebestand dat beschreven staat in Voorbeeld van configuratiebestand.

Pre-initialisatie- en post-initialisatieopdrachten

Tableau Server voert een geautomatiseerd installatiescript uit dat is ontworpen om Server van een vooraf geïnitialiseerde staat naar volledig draaiende staat te brengen. Soms wilt u echter uw eigen automatiseringscode toevoegen aan het initialisatieproces. Hiervoor bieden we twee hooks aan: het pre-initialisatiescript en het post-initialisatiescript.

Pre-initialisatiescript

Dit script wordt direct uitgevoerd nadat de TSM-basisprocessen zijn geïnitialiseerd en voordat andere TSM-installatiestappen worden uitgevoerd. Dit is handig voor het uitvoeren van TSM-configuratieopdrachten voordat Tableau Server wordt uitgevoerd. U hoeft de configuratiewijzigingen die u op dit punt doorvoert niet toe te passen, omdat de normale Tableau Server-automatisering dit doet nadat uw script is voltooid.

Post-initialisatiescript

Dit script wordt uitgevoerd nadat alle andere initialisaties en opstartautomatiseringen van Tableau Server zijn voltooid. Dit script wordt uitgevoerd wanneer Tableau Server volledig functioneel en actief is. De configuratiewijzigingen die op dit punt worden aangebracht, moeten worden toegepast.

Instructies

Volg deze stappen om een aangepast script aan een van deze hooks in uw afbeelding toe te voegen:

  1. Schrijf uw aangepaste script.
  2. Kopieer het aangepaste script naar de directory customer-files van de tool voor het bouwen van de afbeelding van Tableau Server in een container.
  3. Wijzig de naam van het script in pre_init_command of post_init_command, afhankelijk van wanneer u het script wilt laten uitvoeren (u kunt beide hooks onafhankelijk van elkaar gebruiken).
  4. Zorg ervoor dat de machtigingen van het script uitvoerbaar zijn door anderen (chmod +rx <command-file>) of dat de eigendomsmachtigingen overeenkomen met die van de gebruiker zonder rechten in de container.

Gebruikersconfiguratie

Tableau Server gebruikt een gebruiker zonder rechten om serverprocessen uit te voeren. Deze gebruiker is in de container gemaakt tijdens het initialiseren van Tableau Server in een container. Standaard wordt de gebruiker tableau genoemd met 999 als UID. Als u een Tableau Server in een container implementeert die koppelingen gebruikt om data extern op te slaan op de hostmachine, kunt u ervoor kiezen om de UID te wijzigen en deze toe te wijzen aan een UID op de hostmachine. Het gebruik van Docker-gebruikersnaamruimten is een andere manier om hetzelfde resultaat te bereiken.

Hulpprogramma's en tools voor Tableau Server in een container

Alle hulpprogramma's en toolfuncties van Tableau Server in een container zijn in deze directory geplaatst:

/docker/

Bestandsmachtigingen beheren

Wanneer u configuratiebestanden naar de container doorgeeft, moet u ervoor zorgen dat de gebruiker die het Tableau Server-proces in de container uitvoert, de machtiging heeft om toegang te krijgen tot de bestanden. Om te voorkomen dat alle gebruikers toegang moet worden gegeven tot bestanden die aan de container worden gekoppeld, kunt u de UID en/of de GID wijzigen van de gebruiker die Tableau Server in de container uitvoert, zodat deze overeenkomt met de eigenaar van de gebruiker/groep op de host. De containergebruiker krijgt een UID die wordt bepaald door de omgevingsvariabele UNPRIVILEGED_TABLEAU_UID (standaard: 999) en een GID bepaald door UNPRIVILEGED_TABLEAU_GID (standaard: 998). U kunt deze waarden wijzigen door de omgevingsvariabele te overschrijven of u kunt een Docker-gebruikersnaamruimte toewijzen om de UID/GID in de container te koppelen aan een andere UID/GID op de host.

Wachtwoordbeheer

Voor bepaalde functies en opties is het nodig dat gebruikersreferenties als configuratie-instelling in de container worden opgegeven. De referenties van de initiële beheerder van Tableau zijn een voorbeeld van optionele referenties waarmee u extra functies kunt inschakelen. In deze gevallen bieden wij altijd twee methoden om het wachtwoord in te stellen. Ten eerste kunt u een bestand met het wachtwoord en een bestandspad naar een omgevingsvariabele opgeven. U kunt er ook voor kiezen om een omgevingsvariabele in te stellen om het wachtwoord rechtstreeks op te slaan.

De aanbevolen en veiligere optie is om het wachtwoord op te geven als een bestandspad naar de container. Het opgeven van een geheim in een bestand is een goed ondersteund patroon in Docker, Docker Swarm, Kubernetes en andere containersystemen. Het rechtstreeks opslaan van wachtwoorden in omgevingsvariabelen is een gebruikelijk patroon en daarom ondersteunen we dit, maar het betekent doorgaans wel dat het wachtwoord minder veilig is.

Voorbeelden

Laten we eens kijken naar de TABLEAU_USERNAME-referenties. U kunt het wachtwoord voor de gebruiker opgeven als TABLEAU_PASSWORD of TABLEAU_PASSWORD_FILE. Wanneer u een afbeelding van Tableau Server in een container uitvoert, kunt u een van beide omgevingsvariabelen opgeven om het wachtwoord te leveren.

De omgevingsvariabele voor het wachtwoordbestand verwacht een bestandspad binnen de container naar een geldig geheimenbestand. Het geheimenbestand moet uit één regel bestaan die het geheim bevat.

Voorbeeld van het gebruik van een geheimenbestand
docker run \
...
-e TABLEAU_USERNAME=admin \
-e TABLEAU_PASSWORD_FILE=/etc/admin-secret \
-v <full-path-to-pw-file>:/etc/admin-secret \
-d <Tableau Server in a Container image ID or tag>
Voorbeeldinhoud van een geheimenbestand
mypassword23879172

U kunt het wachtwoord ook rechtstreeks in platte tekst opslaan in de omgevingsvariabele voor het wachtwoord. Deze aanpak wordt als minder veilig beschouwd, maar is wel handiger en een gebruikelijk patroon bij containers.

Voorbeeld
docker run \
...
-e TABLEAU_USERNAME=admin \
-e TABLEAU_PASSWORD=password \
-d <Tableau Server in a Container image ID or tag>

Tableau Server configureren nadat deze is uitgevoerd

Zodra Tableau Server is geïnitialiseerd en actief is, kunt u het beste met de server communiceren via de TSM CLI-tool. Dit is de klassieke Tableau Server-tool voor het uitvoeren van beheertaken. In de toekomst zullen we het mogelijk maken dat Tableau Server reageert op wijzigingen die tussen runs aangebracht worden in de statische configuratie in de omgevingsvariabele CONFIG_FILE. Maar voorlopig moet u, nadat Tableau Server is geïnitialiseerd, met de server communiceren via de klassieke tools.

Zie Informatie over de tsm-opdrachtregel voor meer informatie over de TSM-opdrachtregel.

Status

Er zijn twee basisstatuscontroles voor Tableau Server in de afbeelding opgenomen. Deze kunnen worden gebruikt om de levendigheid en gereedheid van de server te controleren.

Levendigheidscontrole

De levendigheidscontrole geeft aan of TSM-services actief zijn. Dit betekent dat het aangeeft of de georganiseerde services van Tableau Server operationeel zijn en functioneren. Deze controle kan hier worden opgeroepen:

/docker/alive-check

Een andere optie is om poort 8850 open te stellen. Deze poort wordt door de Tableau Controller-service uitgevoerd om beheerfuncties te bieden via een webbrowser. De status van de service kan periodiek worden gecontroleerd door middel van TCP-statuscontroles.

Gereedheidscontrole

De gereedheidscontrole geeft aan of Tableau Server actief is en of de bedrijfsservices gereed zijn om verkeer te ontvangen. Dit kan worden bepaald met behulp van het volgende script:

/docker/server-ready-check

Een andere optie is om TCP-statuscontroles te gebruiken op poort 8080 (of elke poort waarop Tableau Server verkeer kan ontvangen). Soms is dit type TCP-statuscontrole betrouwbaarder dan de server-ready-controle, omdat de server-ready-controle gebaseerd is op de servicestatus die aan TSM wordt gerapporteerd, die soms vertraagd is door het bijwerken van de servicestatus.

Blijvende data

Vaak willen we bij containers de mogelijkheid hebben om een container af te sluiten en weer in te schakelen zonder dat er belangrijke informatie verloren gaat. Afbeeldingen van Tableau Server in een container ondersteunen dit, omdat u bepaalde directory's buiten de container kunt koppelen. Zo kunt u containerinstanties volledig vernietigen of verwijderen en toch uw data behouden. Deze data kunnen worden gebruikt om een andere containerinstantie te starten en verder te gaan waar de vorige container was gebleven.

In de volgende secties worden de verschillende soorten beheerde status besproken.

Tableau Server-data

Alle serverdata worden opgeslagen in de datadirectory. In de datadirectory worden alle gebruikersgerelateerde data en service-runtime-metadata opgeslagen. Door deze data te externaliseren, kunnen de data van uw gebruikers behouden blijven, zelfs nadat de Tableau Server in een container volledig is verwijderd.

Deze data zijn overdraagbaar en kunnen worden gebruikt met cloudbeheerde blokopslagsystemen, zoals AWS EBS-volumes.

Wanneer Tableau Server in een container wordt gebruikt in combinatie met een extern bestandsarchief, moet de datadirectory zich op EBS bevinden. Gebruik geen netwerkbestandssysteem (bijvoorbeeld NFS) voor de datadirectory. De externe bestandsarchiefdirectory kan zich op een NFS-volume bevinden.

Statische hostnamen

Tableau Server kan niet goed overweg met dynamische hostnaamwijzigingen. Daarom is het belangrijk om de interne hostnaam van de container op te geven, zodat deze consistent is tussen containeruitvoeringen. De hostnaam binnen een container is willekeurig en kan op elke waarde worden ingesteld. Met behulp van de optie --hostname kunt u de interne hostnaam van de container opgeven. Zorg ervoor dat volgende containers die dezelfde blijvende data gebruiken, worden uitgevoerd met dezelfde hostnaamwaarde.

Dit mag niet worden verward met serverinstallaties met meerdere knooppunten. Daarbij moet aan elk extra knooppunt een andere hostnaam worden toegewezen. Wat van belang is, is dat wanneer een enkele container opnieuw wordt opgestart, de vervangende container die dezelfde blijvende data voor dat exemplaar zal gebruiken, een overeenkomende hostnaam moet hebben.

Compleet voorbeeld

Hier is een voorbeeld waarbij de datadirectory buiten de container is gekoppeld.

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>

Back-up maken en herstellen

Tableau Server in een container ondersteunt Tableau Server bij het maken van back-ups en het herstellen vanuit een back-upbestand (.tsbak). De eerste stap is om een afbeelding van Tableau Server in een container uit te voeren, het back-upbestand (.tsbak) in de afbeelding te koppelen en de omgevingsvariabele BACKUP_FILE in te stellen met het bestandspad naar het back-upbestand. Bovendien moet u het back-up JSON-configuratiebestand opgeven in de omgevingsvariabele CONFIG_FILE. De Tableau Server-container automatiseert het herstelproces, zelfs voor implementaties met meerdere knooppunten. Mocht het systeem op enig moment niet volledig kunnen worden hersteld met deze automatisering, dan kunt u altijd terugvallen op de klassieke Tableau Server-hulpmiddelen en -processen, zoals TSM-opdrachten, om op dezelfde manier met Tableau Server te communiceren als bij een implementatie zonder containers.

Zie Een volledige back-up maken van Tableau Server en Tableau Server herstellen voor meer informatie over het uitvoeren van een back-up en herstel van een standaard Tableau Server-instantie.

Back-up in Tableau Server-container

  1. Open een shell in de Tableau Server in een container, versie A. Maak een back-up van de opslagplaats en back-upbestanden van de topologie en configuratie.

    docker exec -it my-server bash
    
    # Just providing filename automatically produces the backup file at /var/opt/tableau/tableau_server/data/tabsvc/files/backups/
    tsm maintenance backup -f <repository-backup>.tsbak -d
    
    # Any filepath where current user(UNPRIVILEGED USER) can write.
    tsm settings export -f /var/opt/tableau/tableau_server/data/tabsvc/files/backups/<topology-conf-backup>.json
  2. Kopieer de bestanden die u in de vorige stap hebt gemaakt naar de hostcomputer. Wijzig de bestandsmachtiging zodat voor beide bestanden de machtiging Alles-lezen is ingesteld.

    docker cp my-server:/var/opt/tableau/tableau_server/data/tabsvc/files/backups/<repository-backup>.tsbak ./<repository-backup>.tsbak
    docker cp my-server:/var/opt/tableau/tableau_server/data/tabsvc/files/backups/<topology-conf-backup>.json ./<topology-conf-backup>.json
    chmod a+r ./<repository-backup>.tsbak ./<topology-conf-backup>.json
  3. Bewaar back-upartefacten op een veilige locatie. Volg indien nodig de onderstaande herstelstappen.

Herstel binnen een Tableau Server-container

Back-ups van elke ondersteunde versie van Tableau Server (container en niet-container) kunnen worden hersteld binnen de Tableau Server-container.

Vereisten
  • Back-upbestand van Tableau Server.
  • JSON-configuratiebestand met zowel configuratie- als topologie-informatie.
  • Json-configuratiebestand met identiteitenarchiefinformatie.
  • Opmerking: Waarschijnlijk moet u de back-upbestanden wijzigen, zodat u de machtiging Alles lezen hebt. Back-upbestanden zijn doorgaans gekoppeld aan de gebruiker die het bestand heeft gemaakt. Deze gebruiker is waarschijnlijk niet de Tableau-gebruiker die de container uitvoert.
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 \
-v <full-path-to-identity-store-config-only-file>:/docker/config/identity-store-config.json \
-e LICENSE_KEY=<key> \
-p 8080:8080 -d <Tableau Server in a Container image ID or tag>

Opmerkingen:

  • Als u een systeem met meerdere knooppunten herstelt, moet u ook de andere knooppunten starten om de automatische herstelbewerking te laten werken. Zie Tableau Server met meerdere knooppunten in een container in dit document voor meer informatie. Alleen voor het eerste knooppunt zijn het back-upbestand, het back-upconfiguratiebestand en de licentie nodig.
  • De back-upbestanden hoeven alleen bij de eerste uitvoering van de container te worden aangeleverd. Zodra de server is geïnitialiseerd, hoeft u de back-upbestanden niet meer te koppelen.

 

Van Tableau Server naar Tableau Server in een container migreren

Om te migreren van een standaard Tableau Server-installatie naar Tableau Server in een container, moet u de back-up- en hersteltechniek gebruiken. Back-ups van elke ondersteunde versie van Tableau Server (container en niet-container) kunnen worden hersteld binnen de Tableau Server-container. Zie Herstel binnen een Tableau Server-container hierboven voor meer informatie.

Tableau Server-versies upgraden

Er zijn twee manieren om Tableau Server te upgraden. De in deze sectie beschreven methode Upgrade-Image is de aanbevolen oplossing. U kunt Tableau Server echter ook upgraden met Back-up maken en herstellen.

De methode Upgrade-Image

Upgrade-Image is een Docker-afbeelding die kan worden gebouwd met behulp van het script build-upgrade-image van de set-up-tool voor Tableau Server in een container. Het enige doel van de afbeelding is om de momenteel actieve Tableau Server in een container te upgraden.

Volg de onderstaande stappen om de upgrade uit te voeren.

  1. Maak een Upgrade-Image met behulp van het script build-upgrade-image. Om deze container te bouwen, is het RPM van de Tableau Server van de nieuwe versie nodig.
  2. Sluit de container waarop Tableau Server momenteel wordt uitgevoerd af.
  3. Start de Upgrade-Image en koppel dezelfde datadirectory als bij het afsluiten van de container in de vorige stap.
  4. Het upgradeproces neemt wat tijd in beslag, maar u kunt tijdens het upgraden van Tableau Server de Docker-logboeken controleren voor updates over het upgradeproces. De container wordt na het upgradeproces afgesloten.
  5. Start een nieuwe Tableau Server in een container van een nieuwere versie. Koppel dezelfde directory als in de vorige stappen.

Voorbeeld:

Stel dat we een Tableau Server in een container hebben waarop Tableau Server draait. Hier volgen enkele aannames die in dit voorbeeld gelden:

  • Ik heb waardevolle data en ik wil niet dat er data verloren gaan tijdens het upgradeproces. De datadirectory moet buiten de container worden bewaard.
  • De container heet my-server. De Docker-afbeelding heet tableau-server:versionA.
  • De serverversie die my-server momenteel gebruikt is versie A.
  • De serverversie waarnaar ik wil upgraden is versie B.
  1. Haal Tableau Server RPM op voor versie B. Maak een Upgrade-Image.

    # For all the options available in the script
    ./build-upgrade-image -h
     
    # Frequently used command to create a upgrade-image
    ./build-upgrade-image --installer=<path to the tableau server version B> -i tableau-server:versionA -o tableau-server-upgrade:versionAB
  2. Stop de container my-server.

    docker stop my-server -t 120
  3. Start de nieuw gemaakte afbeelding: tableau-server-upgrade:versionAB. Koppel dezelfde datadirectory als van de eerder gestopte container. De container start het upgradeproces naar versie B.

    docker run --name my-upgrade-server \
    -v <data-dir mount from previous step>:/var/opt/tableau \
    ...
    tableau-server-upgrade:versionAB
  4. De container stopt zodra de upgrade is voltooid. Controleer de upgradeproceslogboeken in de Docker-logboeken en check dat het upgradeproces succesvol is. U kunt ook de exitcode van de Docker-container controleren om er zeker van te zijn dat het upgradeproces succesvol is voltooid.

    # The log file /var/opt/tableau/tableau_server/logs/upgrade-console.log is created after 3-4 mins into the start of upgrade container. When the upgrade completes successfully, "upgrade is complete" log will be # seen.
    docker logs my-upgrade-server
    ...
    ...
    Verifying licensing state.
    Tableau Server has been upgraded to version near.20.0801.1050.
    >> The upgraded Tableau binary directory will be added to PATH for new shells. To get the
    >> updated path, either start a new session, or for bash users run:
    >> source /etc/profile.d/tableau_server.sh
    Starting service...
    Starting service...
    Job id is '12', timeout is 30 minutes.
    Service was started successfully.
    Status: RUNNING
    Tableau Server is Running
    upgrade is complete
  5. Stop de container my-upgrade-server. Start de nieuwe versie B van de afbeelding van Tableau Server in een container en koppel de datadirectory van de gestopte container my-upgrade-server.

    # Stop the server.
    docker stop my-upgrade-server -t 120
    
    
    # Run the new version Hu
    docker run --name my-upgraded-server \
    -v <data-dir mount from previous step>:/var/opt/tableau \
    ...
    ...
    tableau-server:versionB

De methode Back-up maken en herstellen

Volg de stappen in het gedeelte Back-up maken en herstellen van dit document. De enige aanpassing die nodig is om een back-up- en herstelbewerking te wijzigen in een upgradebewerking, is het herstellen van de back-up op een nieuwe versie van Tableau Server.

Tableau Server met meerdere knooppunten in een container

Tableau Server met meerdere knooppunten in een container verwijst naar één implementatie van Tableau Server verdeeld over meerdere knooppunten. Meerdere knooppunten betekent in deze context hetzelfde als Tableau Server met meerdere knooppunten, waarbij bepaalde processen op andere knooppunten kunnen worden uitgevoerd om onder andere de capaciteit en rekenkracht te vergroten. Dit verschilt van het opstarten van meerdere individuele Tableau Servers in een container, waarbij elke container een onafhankelijke server is met eigen, afzonderlijke data.

Tableau Server met meerdere knooppunten in een container werkt op dezelfde manier als een installatie van Tableau Server met meerdere knooppunten zonder container en gebruikt hetzelfde onderliggende mechanisme. Zie Gedistribueerde Tableau Server-installaties met een hoge beschikbaarheid voor een overzicht van het instellen van een Tableau Server-installatie met meerdere knooppunten zonder container.

Hier is een voorbeeld:

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

Licentieverlening en TSM-poorten beschikbaar stellen

Om ervoor te zorgen dat worker-knooppunten met de primaire instantie kunnen communiceren, moeten we extra poorten openen. U moet verkeer van andere knooppunten op uw primaire Tableau Server in een container-instantie toestaan in de volgende poortbereiken:

Service Ports: 8800-9000
Postgres Port: 8060
Licensing Ports: 27000-27010

Wees voorzichtig met het aantal poorten dat u opent: We raden aan om slechts 200 poorten (8800-9000) beschikbaar te stellen in plaats van het standaardpoortbereik van Tableau Server (8000-9000). Het beschikbaar stellen van 1000 poorten in Docker kan namelijk een negatieve invloed hebben op de prestaties en opstarttijd van de Docker-afbeelding. U kunt een kleiner of groter poortbereik gebruiken, afhankelijk van hoe complex uw Tableau Server-topologie is. Over het algemeen raden we aan om niet minder dan 100 poorten beschikbaar te stellen, anders bestaat het risico dat services in een cluster niet met bepaalde services kunnen communiceren. Als u uw eigen poortbereik opgeeft, zorg er dan altijd voor dat u poort 8850 beschikbaar stelt (dit is impliciet inbegrepen in de 8800-9000). Het poortbereik wordt opgegeven door de omgevingsvariabelen PORT_RANGE_MIN en PORT_RANGE_MAX.

Extra knooppunten moeten ook het poortbereik voor Service (8800-9000) beschikbaar stellen, maar niet het poortbereik voor Licentieverlening. Houd er rekening mee dat deze poortbereiken alleen bedoeld zijn om communicatie tussen processen in Tableau Server mogelijk te maken. Deze poorten mogen niet beschikbaar worden gesteld aan gebruikers of andere machines, behalve computers waarop Tableau Server in een container wordt uitgevoerd voor hetzelfde cluster met meerdere knooppunten.

Deze poortregels zijn consistent met de documentatie van de Tableau Server-firewall. Zie Lokale firewall configureren voor meer informatie.

Hostnamen omzetten

De verschillende knooppunten van Tableau Server in een container moeten worden uitgevoerd met consistente hostnamen, omdat Tableau Server geen dynamische hostnaamwijzigingen verwerkt. Wanneer u Tableau Server met meerdere knooppunten uitvoert, willen deze knooppunten met elkaar communiceren. Tableau Server-knooppunten proberen elkaar te bereiken met behulp van de hostnamen die in Tableau Server met meerdere knooppunten in een container zijn geconfigureerd voor gebruik. Als u bijvoorbeeld uw eerste knooppunt uitvoert met de hostnaam 'eerste', proberen extra knooppunten verkeer te verzenden naar een host met de naam 'eerste'. Er zijn verschillende manieren om afbeeldingen zo te configureren dat ze hostnamen omzetten naar andere afbeeldingen. /etc/hosts-bestand in elke container om de willekeurige hostnaam van de container (d.w.z. 'eerste') toe te wijzen aan het IP-adres waarop de andere container daadwerkelijk wordt uitgevoerd.

Bootstrapping van extra knooppunten

De eerste Tableau Server-container die als onderdeel van een cluster wordt uitgevoerd, genereert een bootstrap-bestand dat volgende knooppunten moeten gebruiken om zich bij het cluster aan te sluiten. Nadat u extra knooppunten hebt geregistreerd in de topologie van het cluster, kunt u Tableau Server-processen toewijzen die hierop moeten worden uitgevoerd. Dit proces kan volledig geautomatiseerd worden. Als u een Tableau Server-configuratiebestand hebt verstrekt (meestal door een configuratiebestand te koppelen aan het bestandspad dat is opgegeven door CONFIG_FILE, standaardpad: /docker/config/config.json) dat een topologie met meerdere knooppunten specificeert, wacht het eerste knooppunt automatisch totdat alle extra knooppunten zijn geregistreerd. Nadat de registratie is voltooid, wordt de topologie met meerdere knooppunten op het hele cluster toegepast.

Zodra Tableau Server volledig wordt uitgevoerd op het eerste knooppunt in Tableau Server in een container, kunt u het een bootstrap-bestand laten genereren voor extra knooppunten:

docker exec -it <container-name> tsm topology nodes get-bootstrap-file -f $BOOTSTRAP_FILE

Deze opdracht wordt automatisch voor u opgeroepen als u de waarde voor ALWAYS_WRITE_BOOTSTRAP_FILE instelt op 1.

Beveiligingsoverwegingen

Het bootstrap-bestand bevat servergeheimen waarmee een TSM-sessie met het eerste knooppunt tot stand kan worden gebracht. Dit betekent dat een kwaadwillende gebruiker die het bestand in handen krijgt, gedurende een bepaalde tijd TSM-opdrachten naar de server kan sturen. Het bestand zelf bevat ook data waarmee de configuratiegeheimen van de server kunnen worden ontsleuteld. Dit bestand moet als vertrouwelijk worden behandeld en mag alleen toegankelijk zijn voor services en systemen die rechtstreeks betrokken zijn bij het opzetten van een implementatie met meerdere knooppunten.

Bootstrap-vervaltijd

Bootstrap-bestanden hebben een beperkte sessieduur van 2 uur. Gedurende die tijdsduur hoeven de extra knooppunten geen inlogdata aan het eerste knooppunt te verstrekken om zich als extra knooppunt aan te sluiten. Het is mogelijk om een bootstrap-bestand te gebruiken nadat de sessie is verlopen, maar dat betekent dat u de inlogdata van het eerste knooppunt moet invoeren.

Het bootstrap-bestand overbrengen

Het bootstrap-bestand moet beschikbaar worden gemaakt voor en worden gebruikt door de werkknooppunten van Tableau Server in een container. Het bootstrap-bestand moet worden gedeeld met alle andere knooppunten van Tableau Server in een container die u als werkknooppunten voor deze implementatie wilt gebruiken. Dit kan op veel verschillende manieren.

Het bestand overbrengen via een beveiligd netwerk

Een deel van uw automatisering op het eerste knooppunt kan bestaan uit het rechtstreeks verzenden van het bestand naar extra knooppunten. Dit moet worden gedaan met behulp van een veilige bestandsoverdrachtclient/-tool. Dit is waarschijnlijk handiger in scenario's waarbij meerdere bootstrap-bestanden worden gegenereerd gedurende de levensduur van het eerste knooppunt (of om later meer extra knooppunten toe te voegen).

Gebruik een netwerkbestandskoppeling

Een andere optie is een netwerkbestandskoppeling die door alle containers in een bepaalde implementatie wordt gedeeld.

Overige

Het uiteindelijke doel is om een bestand dat door één container is geproduceerd, veilig over te brengen naar een specifieke set andere containers. Elke methode die dit bereikt en die veilig is, is dus geschikt.

Extra knooppunten starten

Om een Tableau Server in een container in een extra knooppunt op te starten, start u de container eenvoudigweg met de omgevingsvariabele BOOTSTRAP_INSTALL ingesteld op 1.

Hiermee wordt de Tableau Server in een container-instantie in een slaapstand gezet totdat er een bootstrap-bestand bestaat op het pad dat is opgegeven door de omgevingsvariabele BOOTSTRAP_FILE (die ook configureerbaar is). Raadpleeg de tabel met omgevingsvariabelen om het standaardbestandspad te bekijken. Ter verduidelijking: als u een afbeelding van Tableau Server in een container uitvoert in de 'extra knooppuntmodus', zal de container niet supervisord of een ander proces opstarten, maar alleen een bash-script dat als pid 1 wordt uitgevoerd en elke 5 seconden controleert of het bootstrap-bestand bestaat. Zodra het bestand aanwezig is, wordt de Tableau Server in een container geïnitialiseerd als een extra knooppunt.

Extra knooppunten configureren

Het configureren van extra knooppunten om een specifieke topologie uit te voeren, werkt hetzelfde als bij een normale Tableau Server-implementatie. Hier gelden ook dezelfde vereisten, wat betekent dat het toevoegen van nieuwe processen op een knooppunt mogelijk een herstart van het hele cluster vereist. Zie Knooppunten configureren voor meer informatie.

Overwegingen voor Tableau Server-functies

Sommige Tableau Server-functies werken anders in containers. In dit gedeelte worden specifieke functies besproken waarvoor in een containeromgeving speciale of andere overwegingen gelden.

Active Directory

AD-domeincontroller instellen

Als u van plan bent om Active Directory te gebruiken als identiteitenarchief voor Tableau Server-webpagina's en -sites, moet u nog een extra overweging maken. Tableau-servers die in Linux-omgevingen draaien, bepalen dynamisch met welke AD-domeincontroller moet worden gecommuniceerd door hun IP-subnet te onderzoeken. Er kunnen willekeurige IP-adressen aan containers worden toegewezen. In dat geval kan Tableau Server het IP-adres niet noodzakelijkerwijs gebruiken om een geschikte domeincontroller te vinden. Daarom kan het nodig zijn om een specifieke domeincontroller/hostnaam te configureren waarmee Tableau Server kan communiceren. Om dit te doen, volgt u deze stappen:

  1. Bepaal welke domeincontroller u wilt dat Tableau Server gebruikt en haal de hostnaam op.
  2. Stel de configuratiesleutel wgserver.domain.ldap.hostname in op de hostnaam met behulp van de standaardconfiguratieopties van de Tableau Server-beheerder:

    • Stel de waarde in het json-configuratiebestand CONFIG_FILE in.
    • Gebruik de TSM-configuratieopdracht

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

AD-certificaat importeren naar Tableau Server-sleutelopslag

Standaard communiceert Tableau Server in een container met AD via StartTLS wanneer eenvoudige binding wordt gebruikt. Wanneer de container in deze configuratie wordt uitgevoerd, is het noodzakelijk om het AD-servercertificaat te importeren naar de Tableau Server-sleutelopslag, anders mislukt de serverinitialisatie. Om dit te doen, volgt u deze stappen:

  1. Maak een pre-init-command-script (zie sectie Pre-initialisatiescript). Voeg de volgende regel toe om het AD-certificaat toe te voegen aan de sleutelopslag van 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. Koppel het AD-servercertificaat aan het opgegeven bestandspad voor de -file-parameter in het pre-init-command-script.

Een alternatieve optie is om de standaardinstelling voor communicatie met AD via StartTLS uit te schakelen. Stel wgserver.domain.ldap.starttls.enabled in op false om de StartTLS uit te schakelen. Maar dat raden we niet aan.

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=<static (internal) 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=<static (internal) 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=<static (internal) 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=<static (internal) name of host machine> \
-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=<static (internal) name of host machine> \
-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=<static (internal) name of host machine> \
-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.