Tableau Server i en container - Använda installationsverktyget

Introduktion

Tableau Server i en container är Tableaus första containerbaserade server. Tableau Server i en container är en heltäckande Tableau Server-instans som körs inuti en Linux Docker-container. Med andra ord är en Tableau Server i en container-avbildning en Docker-avbildning som kör ett helt fristående Tableau Server-program. Tableau Server i en container är det första av våra många steg mot att stödja Tableau Server som körs i container-baserade miljöer. Det enklaste sättet att förstå begreppet Tableau Server i en container är att se det som en virtuell dator med Tableau Server förinstallerat. Avbildningen bygger på en UBI 8-avbildning (CentOS 7.x för version 2022.1 och tidigare) och kör supervisord (istället för systemd) inuti behållaren. När behållaren startar supervisord försöker den omedelbart initiera och starta Tableau Server. Syftet med en stor del av dokumentationen här är att beskriva hur du kan skapa konfigurationer och använda automatisering för att köra Tableau Server i Docker-miljöer.

Med verktyget för avbildningskonfiguration för Tableau Server i en container kan du skapa och anpassa container-avbildningar så att de inkluderar anpassade paket och artefakter. En av verktygets primära funktioner är att bygga behållaravbildningen och installera anpassade datakopplingar.

Begränsningar för Tableau Server i en behållare

  • Tableau Server i en behållare stöder endast licensaktivering med hjälp av Server ATR. Offlineaktivering med Server ATR stöds i 2023.1 och senare. Denna funktion är tillgänglig i behållare men kräver extra steg och godkännande. Om du behöver köra Tableau Server i en behållare i en frånkopplad miljö eller offlinemiljö kontaktar du din kontorepresentant för mer information.
  • Tableau Server i en container stöder för närvarande inte RMT-agenten (Resource Monitoring Tool).
  • Kerberos stöds inte i Tableau Server i en container.

Tableau Server i ett installationsverktyg för behållare

Tableau Server i ett installationsverktyg för behållare, build-image, bygger en anpassad Tableau Server i en container-avbildning från ett Tableau installationsprogram, .rpm och de medföljande konfigurationsfilerna.

Installationsverktyget tar ett Tableau Server-installationsprogram och dina drivrutiner och andra artefakter som indata och skapar en Docker-avbildning. När verktyget build-image används korrekt kommer den nyligen genererade bilden att ha installerat de önskade artefakterna.

Stödda distributioner för byggnad

Att skapa Tableau-servern i en Container Docker-bild stöds endast på ett RHEL-baserade Linux-system (RHEL, CentOS eller Amazon Linux 2). Att skapa med en annan Linux-distribution kan vara möjligt men är för närvarande inte beprövat och stöds inte. Att skapa bilder på macOS stöds inte. Avbildningen som skapas är baserad på en UBI 8-bild (CentOS 7.x för version 2022.1 och tidigare).

Du måste ha Docker version 18.09 eller senare installerat på värden för att kunna bygga behållaravbildningarna. I allmänhet bör du använda den senaste stabila versionen av Docker. Vissa Linux-distributioner innehåller bara äldre versioner av Docker i sina programarkiv, och i så fall du kan behöva installera Docker från en annan källa. Docker-versioner tidigare än version 18.09 saknar vissa funktioner som krävs för Tableau Server i en behållare.

Ladda ner filerna som behövs

För att använda installationsverktyget måste du ladda ner både verktyget och en kompatibel serverinstallationsfil .rpm. Installationsfilen måste vara version 2021.2.0 eller senare. Båda filerna kan laddas ner från Tableau Server-sidan(Länken öppnas i ett nytt fönster).

  1. Ladda ner serverinstallationsfilen, tableau-server-<version>.rpm version 2021.2.0 eller senare.

  2. Ladda ner servern i ett installationsverktyg för behållare, tableau-server-container-setup-tool-<version>.tar.gz.

Installation

Tableau Server i ett installationsverktyg för behållare levereras som en komprimerad fil. Du måste extrahera innehållet i den komprimerade filen. Här är ett exempel som antar att Tableau- servern i ett arkiv med inställningsverktyg för behållare finns i din nuvarande katalog:

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

Detta skapar en ny katalog, tableau-server-container-setup-tool-<VERSION> med skriptet build-image som du använder för att köra verktyget.

Fyll i registreringsformuläret

Redigera registreringsfilen så att du får den unika identitetsinformation som behövs för att registrera Tableau Server i enlighet med slutanvändaravtalet. Filen reg-info.json fungerar som en mall för din obligatoriska, unikt identifierbara registreringsinformation och finns i den översta katalogen i installationsverktyget för Tableau Server i en container. Den här filen används för att registrera Tableau Server-instansen som körs i avbildningen. Genom att tillhandahålla korrekt information säkerställs att registreringsprocessen slutförs korrekt.

Fältvärdet eula är redan ifyllt med ”Godkänn” för att ange att du godkänner vårt slutanvändaravtal (EULA). Du kan visa licensavtalet i versionskatalogen för byggverktyget. Som beskrivs i slutanvändaravtalet måste du skicka in en unikt identifierbar användarregistrering när du aktiverar Tableau Server. När du är klar med att redigera registreringsfilen ska de andra fälten ha värden som återspeglar din unika information. Den här filen används för att registrera Tableau Server-instansen som körs i avbildningen. Korrekt information säkerställer att registreringsprocessen slutförs och att din anmälan uppfyller kraven för att bevilja en licens.

Obs! Du måste godkänna slutanvändaravtalet för att använda Tableau Server. Om du inte godkänner slutanvändaravtalet kan du inte köra Tableau Server.

Registreringsfilmallen reg-info.json före redigering:

{
"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>"
}

Hur man använder verktyget

Det finns ett körbart skript i installationsverktyget som heter build-image. Om du kör det här med alternativet -h visas hjälpen:

./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.

Grundläggande exempel på användning:

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

Att köra kommandot utan att tillhandahålla artefakter eller ett installationsskript kommer att fungera, men gör egentligen ingenting eftersom det inte skulle kopiera eller installera några ytterligare resurser i den ursprungliga Tableau Server i en container-avbildning.

Orkestrering

Tableau tillhandahåller endast dokumentation och stöd för Tableau Server-behållare som körs på Linux. Tableau tillhandahåller inte dokumentation eller stöd för behållarorkestreringssystem som Kubernetes eller Docker Swarm. Kubernetes kan dock användas för att distribuera Tableau Server i en container. För resurser och vägledning om hur du distribuerar Tableau-behållare i Kubernetes, se vårt community-stödda GitHub-projekt: https://github.com/tableau/tableau-server-in-kubernetes(Länken öppnas i ett nytt fönster).

Anpassa bilden

Ställa in miljövariabler vid byggtid

En delmängd av miljövariabler som kan anpassa din bild kan endast ställas in när bilden byggs. Detta inkluderar användare, grupp och andra egenskaper som kräver rotprivilegier inuti behållaren. Rotåtgärder är inte tillgängliga som standard vid körning. Dessutom kan det vara användbart att baka in vissa miljövariabler i bilden vid byggtiden så att de inte behöver ställas in varje gång bilden körs. Alla dessa miljövariabler kan ställas in genom att skicka in en miljöfil till byggbildsskriptet.

Miljöfil

Miljöfilen kan skickas till byggbildsskriptet med argumentet -e. Filen måste överensstämma med detta format:

<KEY>=<VALUE>
<KEY>=<VALUE>
Exempel på användning:

Skapa en miljöfil med rätt format:

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

Skicka filen till bildbyggaren

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

Alla miljövariabler kan ställas in i miljöfilen. Ta en titt på avsnittet Miljövariabler för att se hela listan.

Miljövariabler för byggtid kan bara ställas in när skriptet körs för att bygga bilden:

MiljönamnStandardBeskrivning
BASE_IMAGE_URLAnvänd konstruktionsverktygskommandot: build-image -bStandardbilden som anges i verktyget för avbildningskonstruktion och Docker-filen är den enda officiellt stödda basavbildningen. Denna parameter kan användas för att antingen dra en kopia av denna specifika basavbildning från en anpassad lagringsplats för en Docker-avbildning eller definiera en anpassad basbild. Om du väljer att använda en anpassad basbild (se Definiera en anpassad basbild för mer information), är det ditt ansvar att se till att den är baserad på UBI 8 (CentOS 7 eller RHEL 7 för version 2022.1 och tidigare) och innehåller nödvändiga resurser för att köra Tableau Server korrekt.
PRIVILEGED_TABLEAU_GID997GID för Tableau-gruppen med behörighet.
UNPRIVILEGED_TABLEAU_GID 998 GID för Tableau-gruppen utan behörighet.
UNPRIVILEGED_TABLEAU_UID 999 UID för den användare som kör Tableau-processer (driftsättning med en användare).
UNPRIVILEGED_USERNAME tableau Strängnamnet för användaren utan behörighet.
UNPRIVILEGED_GROUP_NAME tableau Strängnamnet för gruppen utan behörighet.
PRIVILEGED_GROUP_NAMEtsmadminSträngnamnet för gruppen med behörighet.
LANG en_US.UTF-8Språkzoninställning

Drivrutiner, certifikat och andra filer

Tableau Server-bilden levereras inte med förinstallerade dataanslutningar eller drivrutiner. Du måste skapa ett bash installationsskript som kommer att instruera skriptet build-image att installera de dataanslutningar som Tableau Server behöver. Det här är stegen du skulle följa:

  1. Se till att Tableau Server i ett installationsverktyg för behållare är korrekt installerat

  2. Ladda ner drivrutinen från sidan Tableau drivrutiner: https://www.tableau.com/sv-se/support/drivers(Länken öppnas i ett nytt fönster)

  3. Kopiera den nedladdade drivrutinfilen till kundfilskatalogen i Tableau Server i ett installationsverktyg för behållare.

    customer-files Katalogen kopieras till Docker-avbildningen. Den kommer att placeras i följande sökväg inuti behållaren: /docker/customer-files

  4. Redigera filen i Tableau Server i ettinstallationsverktyg för behållare customer-files/setup-script för att tala om för Docker hur drivrutinen ska installeras.

    Skriptet är bara en körbar bash-fil som körs när Docker-avbildningen byggs. (Tekniskt sett kan den användas för att utföra godtyckliga åtgärder i bilden, inklusive miljöinställning, konfiguration, osv.)

    Skriptet kommer att köras inuti behållaren så kom ihåg att kommandona måste fungera när de körs inuti Tableau Server i en container-avbildning.

    Om du till exempel vill installera en drivrutin som heter mydriver.rpm skriver du detta i setup-script:

    yum install -y /docker/customer-files/mydriver.rpm
Tableau administratörsvyer

Tableau administratörsvyer kräver att PostgreSQL-drivrutinen är installerad. Om du planerar att använda dessa vyer måste du följa stegen ovan och installera PostgreSQL-drivrutinen. Mer information om administratörsvyer finns i Administrativa vyer

Definiera en anpassad basbild

Standardbasbilden som används för att bygga Tableau Server-behållaren är en UBI 8-bild (CentOS 7.x för version 2022.1 och tidigare) från Docker Hub. I vissa fall kanske du vill ställa in byggbildsverktyget för att dra bilden från en annan lagringsplats för Docker-avbildning. Till exempel kan ditt företag hantera en intern Docker-lagringsplats och inte vill att build-image dras från en offentlig lagringsplats. Använd följande steg för att anpassa sökvägen till basbilden:

  1. Använd följande kommando för att visa det aktuella verktyget build-image grundbildsnamn och version:

    ./build-image -b
  2. Dra det exakt matchande basbildnamnet och versionen från Docker Hub och lagra/cachelagra det i din föredragna bildlagringsplats (enligt ditt företags bildpolicy)

  3. Gå tillbaka till bildbyggningsverktyget. Skapa eller modifiera en befintlig miljöfil för att inkludera miljönyckeln BASE_IMAGE_URL med värdet inställt på en ny sökväg till Docker-avbildningsregistret:

    BASE_IMAGE_URL=<custom-image-registry-path>
  4. Bygg bilden med miljöfilen:

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

Med de här stegen kan du ange en helt annan basbild. Denna funktion stöds endast för for UBI 8-baserade bilder (RHEL och CentOS 7.x för version 2022.1 och tidigare) och tillhandahålls för att hjälpa kunder att skapa säkrare bilder.

Att använda en annan basbild än den standard som anges av Tableau medför risken att skapa en bild som inte startar eller fungerar korrekt. Om du väljer att använda en anpassad basbild är du ansvarig för att basbilden gör det möjligt för Tableau Server att köras korrekt. Vi rekommenderar att du använder standard basbild om den inte av någon anledning är oacceptabel för din organisation, till exempel säkerhetsproblem.

Den anpassade basbilden måste baseras på UBI 8 (RHEL 7 eller CentOS 7 för version 2022.1 och tidigare). Användning av någon annan distribution kommer att resultera i en bild som inte stöds.

Använda interna lagringsplatser för yum och pip

Tableau Server i behållare-avbildningen är konfigurerad att använda standard lagringsplatser för yum och pip för att dra beroende paket. Om du behöver redigera, ta bort eller lägga till lagringsplatser (till exempel kan interna lagringsplatser användas för att förbättra säkerheten), måste du ändra ett av bildinstallationsverktygets initialiseringsskript.

Ändra skriptet <setup_tool>/src/image/init/setup_default_environment.bash i källkoden för att använda de interna lagringsplatserna. Behåll alla lagringsplatsfiler som krävs för den interna lagringsplatsen i katalogen <setup_tool>/src/image/init/. Den katalogen kopieras till Docker-avbildningen.

Basbilder och säkerhet

Många kunder kommer att köra behållarskanningsverktyg (såsom AquaScan eller TwistLock) mot den genererade Tableau Server Docker-avbildningen. Dessa säkerhetsverktyg kommer att generera en rapport om potentiella säkerhetsbrister (eller vanliga sårbarheter och exponeringar eller CVE). Det finns två typer av sårbarheter associerade med Tableau Server i en container-bild:

  • CVE: er som är associerade med Tableau Server eller med ett bibliotek som vi är beroende av.
  • CVE: er associerade med den underliggande Linux-distributionen.

Tableau ansvarar för CVE:er som är direkt kopplade till Tableau Server. Säkerhetsgruppen analyserar dessa rapporter för att fastställa påverkan och allvarlighetsgrad för att hjälpa till att prioritera problemen som ska lösas.. Baslinjeprioriteten för lösning och tidslinjer kommer att bestämmas av den ursprungliga CVSS-allvarlighetsgraden. Tredje partskomponents säkerhetsuppdateringar kommer vanligtvis inte att tillbaka-portas till äldre utgåvor om det inte finns en körbar kodsökväg som exponerar sårbarheten.

Med den behållarbaserade distributionsmodellen ställs kunderna inför en annan uppsättning utmaningar kring sårbarheter i OS-skikt. Traditionellt med Tableau Server, skulle Tableau fokusera sina ansträngningar på att leverera ett säkert program och kunden är ansvarig för att hantera operativsystemen (Linux eller Windows). Med behållarbasering är dock (UBI 8 från och med version 2023.3, CentOS 7.x eller RHEL 7.x för version 2022.1 och tidigare) och programmet förpackade tillsammans i en behållare. Tableau tar ansvar för den CVE som associeras med Tableau Server och för att avgöra om en CVE från ett tredjepartsbibliotek skulle påverka kunderna. Kunderna måste dock vara ansvariga för problem med OS-skiktet. För att kunderna ska kunna ta itu med säkerhetsproblemen i OS-skiktet kan kunderna byta ut det basala OS-skiktet mot sin egen version (UBI 8-baserad för version 2022.3 och senare, RHEL eller CentOS 7.x för version 2022.1 och tidigare). När du gör detta måste du validera att Tableau Server körs korrekt. Ta bort ett bibliotek som Tableau Server är beroende av på grund av säkerhetsproblem kan resultera i en icke-fungerande instans av Tableau Server. Om du ändrar det basala OS-skiktet ansvarar kunderna för att validera att det fungerar.

Härdning av Tableau Server i en container

Du kan tillämpa standard härdningssteg på Tableau Server i en container. För mer information om härdning av Tableau Server, se Checklista för säkerhetsförstärkning.

Exempel på konfiguration för driftsättning

Docker

Grundläggande användning av Tableau Server i en container
docker run \
-e LICENSE_KEY=<key>
-p 8080:8080
-d <Tableau Server in a Container image ID or tag>
Grundläggande användning av Tableau Server i en container med automatisk första administratörsanvändare
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>
Endast TSM-läge
docker run \
-e TSM_ONLY=1 \
-p 8080:8080 -d <Tableau Server in a Container image ID or tag>
Grundläggande användning med flera noder
Ursprunglig nod

Alternativ 1: Använd detta om serverkonfigurationen (CONFIG_FILE) föreskriver en topologi med flera noder:

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>

Alternativ 2: Använd detta om du vill ha en konfiguration med flera noder även om serverkonfigurationen inte föreskriver en topologi med flera noder:

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>
Ytterligare nod
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>
Externalisera dataanvändningen
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>
Grundläggande användning av Init-container

Init-behållare

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>

Körningsbehållare

docker run \
-v <empty-data-dir>:/var/opt/tableau \
--hostname=localhost \
-p 8080:8080 -d <Tableau Server in a Container image ID or tag>
Grundläggande återställning från enkel säkerhetskopieringsnod
docker run \
-v <full-path-to-backup-file>:/docker/config/backup/backup-file.tsbak \
-v <full-path-to-config-only-file>:/docker/config/config.json:ro \
-e LICENSE_KEY=<key> \
-p 8080:8080 -d <Tableau Server in a Container image ID or tag>

Docker – Compose

version: '3.2'
services:
    tableau-server:
         hostname: localhost
         volumes:
              - <your-tsm-command-file>:/docker/config/tsm-commands:ro
              - <your-config-file >:/docker/config/config.json:ro
         ports:
              - "8080:8080"
         image: ${IMAGE_NAME}
         environment:
              - LICENSE_KEY=<license-key>

 

 

Tack för din feedback!Din feedback har skickats in. Tack!