Tableau Server in einem Container – Verwenden eines Images

Einführung

Tableau Server in einem Container ist das erste containerbasierte Serverangebot von Tableau. Tableau Server in einem Container ist eine All-in-One-Tableau Server-Instanz, die in einem Linux-Docker-Container ausgeführt wird. Mit anderen Worten: Ein Image von Tableau Server in einem Container ist ein Docker-Image, das eine komplette, eigenständige Tableau Server-Anwendung ausführt. Tableau Server in einem Container ist unser erster von vielen Schritten zur Unterstützung von Tableau Server in einer containerbasierten Umgebung. Die einfachste Möglichkeit, das Konzept von Tableau Server in einem Container zu verstehen, besteht darin, es sich wie eine virtuelle Maschine (VM) mit vorinstalliertem Tableau Server vorzustellen. Das Image basiert auf einem UBI 8-Image (CentOS 7.x für Version 2022.1 und früher) und führt supervisord (anstelle von systemd) innerhalb des Containers aus. Wenn der Container supervisord startet, versucht er sofort, Tableau Server zu initialisieren und zu starten. Ein Großteil dieser Dokumentation beschreibt, wie Sie die Konfiguration bereitstellen und die Automatisierung nutzen können, damit Sie Tableau Server in Docker-Umgebungen ausführen können.

Mit dem Einrichtungstool für ein "Tableau Server in einem Container"-Image können Sie Container-Images erstellen und so anpassen, dass es benutzerdefinierte Pakete und Artefakte enthält. Eine der Hauptfunktionen des Tools besteht darin, das Container-Image zu erstellen und benutzerdefinierte Datenconnectoren zu installieren.

Informationen zum schnellen Testen des Images von Tableau Server in einem Container im Rahmen eines Machbarkeitsnachweises finden Sie unter Tableau Server in einem Container – Schnellstart.

Beschränkungen für Tableau Server in einem Container

  • Tableau Server in einem Container unterstützt nur die Lizenzaktivierung mit Server ATR. Die Offline-Aktivierung mit Server ATR wird ab 2023.1 unterstützt. Diese Funktionalität ist zwar in Containern verfügbar, erfordert jedoch zusätzliche Schritte und Genehmigung. Wenn Sie Tableau Server in einem Container in einer Air-Gap- oder Offline-Umgebung ausführen müssen, wenden Sie sich für weitere Informationen an Ihren Kundenbetreuer.
  • Tableau Server in einem Container unterstützt derzeit den Resource Monitoring Tool (RMT)-Agent nicht.
  • Kerberos wird in Tableau Server in einem Container nicht unterstützt.

Image von Tableau Server in einem Container

Das Image von Tableau Server in einem Container ist ein Docker-Image, das Tableau Server vollständig enthält. Das Image wird mit dem Einrichtungstool für Tableau Server in einem Container erstellt. Beim Erstellen enthält das Image Tableau Server, ist aber noch nicht initialisiert. Der Standardbenutzer in einem Image von Tableau Server in einem Container ist ein nicht privilegierter Benutzer ohne Root-Rechte.

Voraussetzungen

Ausführen des configure-container-host-Skripts

Wenn Tableau Server ohne einen Container installiert wird, werden bestimmte Ressourcenbeschränkungen und Coredump-Eigenschaften im Rahmen des Installationsprozesses geändert. Dies dient dazu, die Leistung von Tableau Server zu optimieren. Ein Image von Tableau Server in einem Container kann diese Änderungen nicht auf dem Hostcomputer vornehmen. Wir empfehlen daher, das configure-container-host-Skript, das im Einrichtungstool für Tableau Server in einem Container enthalten ist, auf jedem Computer auszuführen, auf dem Tableau Server in einem Container-Image ausgeführt werden soll. Dadurch wird sichergestellt, dass die Leistung von Tableau Server in einem Container-Image mit der seines Gegenstücks ohne Container vergleichbar ist.

So führen Sie das Skript configure-container-host aus:

  1. Lokalisieren Sie das Skript (configure-container-host) im obersten Verzeichnis des Einrichtungstools für Tableau Server in einem Container.
  2. Kopieren Sie es in die Umgebungen, in denen Sie Tableau Server ausführen möchten.

  3. Bestimmen Sie das nicht privilegierte Benutzerkonto/die nicht privilegierte Benutzerkennung, das/die als Standardbenutzer des Images von Tableau Server in einem Container ausgeführt wird. Dieser Benutzer sollte auf dem Hostcomputer vorhanden sein und mit der UID übereinstimmen, die in der Umgebungsvariablen UNPRIVILEGED_TABLEAU_UID des Tableau Server-Containers festgelegt ist. Wenn diese Einstellung bei der Erstellung Ihres Docker-Images nicht vorgenommen wurde, lautet die standardmäßige Kennung für nicht privilegierte Benutzer im Container 999. Wenn Sie die Benutzerzuordnung von Docker verwenden, sollte diese Benutzerkennung mit dem Benutzer übereinstimmen, der auf dem Hostcomputer vorhanden ist.

  4. Führen Sie das Skript als Root aus:

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

Ausführen des Images

Um ein Docker-Image von Tableau Server in einem Container auszuführen, ist der einfachste Befehl der folgende:

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

Dadurch wird Docker im Hintergrund ausgeführt, was nach einiger Zeit zu einer vollständig installierten Instanz von Tableau Server führt. Je nach der Hardware des Computers, auf dem das Image ausgeführt wird, kann es 10 bis 20 Minuten dauern, bis Tableau Server vollständig gestartet ist. Durch Eingabe des Befehls docker ps können Sie verifizieren, dass der Container ausgeführt wird. Sobald Tableau Server betriebsbereit ist, muss das erste Tableau Server-Administratorkonto erstellt werden. Dieser Schritt kann automatisiert werden. Weitere Informationen dazu finden Sie unter Automatisieren des ersten Tableau Server-Administrators.

Zusammenfassung der grundsätzlichen Ausführungsargumente

Alle Optionen, die im Befehl "docker run" verwendet werden, sind notwendig. Häufig werden weitere Optionen bereitgestellt, um unterschiedliche Funktionen im Image zu nutzen. Betrachten wir zunächst nur die Argumente, die im einfachsten "docker run"-Befehl für Tableau Server in einem Container verwendet werden:

ArgumentBeschreibung
-e LICENSE_KEY=<key>Tableau Server muss lizenziert sein. Diese Umgebungsvariable speichert den Schlüssel, der zum Lizenzieren des Servers verwendet wird. Dies ist eine erforderliche Komponente des Initialisierungsprozesses. Sie können mehrere, durch Kommas getrennte Lizenzen angeben.
-p 8080:8080Dadurch wird Docker aufgefordert, Port 8080 im Container zu öffnen und an Port 8080 auf dem Hostcomputer zu binden. Der erste 8080-Wert ist konfigurierbar. Wenn Sie diesen Wert ändern, wird der auf dem Host zugeordnete Port geändert. Tableau Server erwartet standardmäßig, dass der Benutzerdatenverkehr auf Port 8080 im Container empfangen wird. Sie können auswählen, ob dieser Port auf einem anderen Hostport verfügbar gemacht werden soll oder gar nicht.

 

Automatisieren des ersten Tableau Server-Administrators

Wenn Tableau Server zum ersten Mal gestartet wird, muss ein erster Administratorbenutzer erstellt werden, bevor Remotenetzwerkverbindungen mit Tableau Server zugelassen werden. Dies kann durch Ausführen des tabcmd initialuser -s localhost:8080 -u <username> -p <password>-Befehls innerhalb des Containers erfolgen. Sie können auch Administratoranmeldeinformationen über Umgebungsvariablen festlegen. TABLEAU_USERNAME und TABLEAU_PASSWORD oder TABLEAU_PASSWORD_FILE (bevorzugt) sind die Umgebungsvariablen, die in den anfänglichen Administratoranmeldeinformationen eingestellt werden können. Weitere Informationen zur Kennwortverwaltung finden Sie unter Kennwortverwaltung.

Weitere Informationen zum Befehl tabcmd initialuser finden Sie unter initialuser.

Beispiel

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>

Lizenzierung

Lizenzierung in Containern

Die Lizenzierung von Tableau Server in einem Container verwendet den Server-Authorization-To-Run-Service (ATR), um Tableau Server bei Bereitstellung in der Cloud, in Containern oder in virtuellen Umgebungen zu aktivieren, ohne dass die Lizenzaktivierungen auslaufen. Der ATR-Dienst erreicht dies durch die Bereitstellung von kurzfristigen Leasingverträgen mit konfigurierbarer Dauer (ATR-Dauer), bis das Ablaufdatum des Produktschlüssels erreicht ist. ATR abstrahiert die Tableau-Lizenzierung von zugrundeliegenden Hardwareänderungen, was ein grundlegender Aspekt von Container-Implementierungen ist. Da Server-ATR voraussetzt, dass der Container den von Tableau gehosteten ATR-Service erreichen kann, benötigen die Container einen Internetzugang. Tableau Server in einem Container unterstützt keine Offline- oder manuelle Aktivierung. Weitere Informationen finden Sie unter Aktivieren von Tableau Server mithilfe des ATR-Services (Authorization-To-Run).

Wichtig: Sie müssen entweder die Umgebungsvariable LICENSE_KEY oder LICENSE_KEY_FILE angeben (nur eine festlegen).

Wenn Sie beim Upgrade von Tableau Server in einem Container die maximale Anzahl von Aktivierungen für Ihre Lizenz verwendet haben, kann Tableau Server erst nach Ablauf der ATR-Dauer (standardmäßig 4 Stunden/14.400 Sekunden) starten. Weitere Informationen zum Einstellen oder Ändern der ATR-Dauer finden Sie unter Aktivieren von Tableau Server mithilfe des ATR-Services (Authorization-To-Run)(Link wird in neuem Fenster geöffnet).

Lizenzumgebungsvariable

Tableau Server in einem Container unterstützt das Festlegen von Lizenzschlüsseln mithilfe einer Umgebungsvariablen: LICENSE_KEY kann einen oder mehrere Schlüssel (-e LICENSE_KEY= "<key1>, <key2>") über eine durch Komma getrennte Liste enthalten.

Beispiel

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

Lizenzdatei

Tableau Server in einem Container unterstützt auch das Festlegen von Lizenzschlüsseln mithilfe einer Datei. Speichern Sie eine Datei an den Standardspeicherort der Lizenzschlüsseldatei im Container (/docker/config/license_file) oder wie von der Umgebungsvariablen LICENSE_KEY_FILE anderweitig angegeben.

Beispiel

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>

Angeforderte Lizenz-Leasingdauer

Sie können die Leasingdauer der ATR-Lizenz in einem Tableau Server-Container angeben, indem Sie die Umgebungsvariable REQUESTED_LEASE_TIME festlegen. Sie müssen die Leasingdauer in Sekunden angeben, wobei die Mindestdauer 3.600 Sekunden (oder 1 Stunde) beträgt. Es wird empfohlen, die Leasingdauer beim Experimentieren und Testen von Tableau Server zu reduzieren, um die Wahrscheinlichkeit zu verringern, dass die Grenze für die maximale Anzahl aktivierter Leasingverträge erreicht wird. Für Produktionsbereitstellungen wird dringend empfohlen, den Parameter REQUESTED_LEASE_TIME nicht festzulegen (also den Standardwert zu verwenden), damit Tableau die ideale Leasingdauer ermitteln kann.

Beispiel

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

Ausführen eines nicht initialisierten Images

Tableau Server verfügt über zwei Installationsphasen. Zunächst werden die Tableau Service Manager(TSM)-Dienste installiert. In einer typischen On-Premise-Installation ist dieser Schritt die Gelegenheit für Serveradministratoren, ihren Server zu registrieren, ihre Lizenzen zu aktivieren und den Server so zu konfigurieren, dass er sich wie gewünscht verhält. Die zweite Phase der Installation besteht darin, die Tableau Server-Prozesse einzurichten und zu starten, die den Endbenutzerdatenverkehr und die zugehörige Geschäftslogik verarbeiten.

Das Standardverhalten von Images von Tableau Server in einem Container besteht darin, alle Installationsschritte zu automatisieren, sodass der Befehl docker run letztlich zu einem voll funktionsfähigen Server führt. Wenn Sie jedoch ein Image von Tableau Server in einem Container starten und nur die TSM-Dienste ausführen möchten (was ein Server-Administrator erwarten würde, wenn er gerade initialize-tsm ausgeführt hätte), können Sie dies tun, indem Sie das TSM_ONLY-Flag als Umgebungsvariable übergeben.

Beispiel:

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

Interaktion mit dem Image

Wenn ein Image von Tableau Server in einem Container ausgeführt wird, können Sie TSM- und tabcmd-Befehle direkt aufrufen. Diese Tools werden direkt zum Umgebungspfad des pid 1-Benutzers hinzugefügt (der zu diesem Zeitpunkt Root ist). Dies bedeutet, dass Sie TSM- und tabcmd-Befehle wie folgt aufrufen können:

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

Es ist auch möglich, eine Shell im Container zu öffnen, um allgemeinere Aktionen auszuführen. Dies wird in der Regel nicht empfohlen, außer für Debugging-Zwecke:

docker exec -it <container> bash

TSM-Webbenutzeroberfläche und Remote-CLI

Auf die TSM-Webbenutzeroberfläche und die Remote-CLI kann nicht standardmäßig zugegriffen werden. Dies liegt daran, dass ein Benutzername und ein Kennwort erforderlich sind, um sich zu authentifizieren, und standardmäßig wird dem Benutzer, der Tableau Serverprozesse im Container ausführt, kein Kennwort zur Verfügung gestellt. Dies geschieht aus Sicherheitsgründen (wir empfehlen nicht, Images mit einem Standardkennwort bereitzustellen, da dies einen Remote-Zugriff ermöglichen würde). In einigen Fällen können die TSM-Webbenutzeroberfläche und Remote-Zugriffe über die TSM-CLI sinnvoll sein. Wenn Sie diese Funktionen nutzen möchten, müssen Sie die unten beschriebenen Schritte ausführen, um ein Benutzerkonto für den Remote-Zugriff zu erstellen.

Ausführlichere Informationen zur TSM-Webbenutzeroberfläche und -CLI finden Sie unter Anmelden bei der Webschnittstelle von Tableau Services Manager.

Erstellen eines TSM-Remote-Benutzers

Geben Sie die Umgebungsvariablen TSM_REMOTE_UID und TSM_REMOTE_USERNAME an, wenn Sie das Image von Tableau Server in einem Container mit dem Einrichtungstool erstellen. Die Erstellung eines TSM-fähigen Kontos im Image erfordert einen privilegierten Zugriff im Image, der zur Laufzeit nicht verfügbar ist. Daher kann dies nur erfolgen, wenn das Docker-Image vom Einrichtungstool für Tableau Server in einem Container (build-image) erstellt wird.

Beispiel einer environment-Datei des Einrichtungstools für Tableau Server in einem Container:

TSM_REMOTE_UID=1010
TSM_REMOTE_USERNAME=myuser

Kennwort für den TSM-Remote-Benutzer festlegen

Das Image von Tableau Server in einem Container erfordert ein Kennwort für das Konto, wenn das Image ausgeführt wird. Es gibt zwei Möglichkeiten, das Kennwort für dieses Konto festzulegen.

Geheimnisdatei (empfohlen)

Erstellen Sie eine Datei mit dem Namen remote-user-secret, schreiben Sie das Kennwort in die Datei und binden Sie sie zur Laufzeit in den Container ein. TSM_REMOTE_PASSWORD_FILE bestimmt den erwarteten Speicherort (Standardspeicherort ist /docker/config/remote-user-secret) der Geheimnisdatei im Container.

Beispiel für remote-user-secret-Datei:

mypassword

Beispiel für einen "docker run"-Befehl:

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>
Umgebungsvariable

Sie können auch einfach die Umgebungsvariable TSM_REMOTE_PASSWORD beim Starten des Docker-Images setzen.

Beispiel für einen "docker run"-Befehl:

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>

Sicherheitshinweise

  • Port 8850 muss für den Empfang von TSM-Anfrageverkehr freigegeben sein.
  • Wenn das Kennwort im Image zur Laufzeit nicht richtig eingerichtet ist, wird der Container sofort beendet.
  • TSM basiert auf dem Linux-Benutzerkontosystem des Images. In diesem Fall ist das Konto im Image beschränkt. Das bedeutet, dass das Konto eine eingeschränkte Shell hat und auf die Ausführung von zwei Befehlen beschränkt ist: /bin/true und passwd.

So rotieren Sie das Kennwort des TSM-Remote-Benutzers

Wenn Sie das Kontokennwort des TSM-Remote-Benutzers rotieren wollen, können Sie dies mit einer dieser beiden Optionen tun:

Starten Sie eine neue Instanz von Tableau Server in einem Container

Das Kennwort des Kontos wird bei jedem Start des Containers festgelegt. Wenn Sie Tableau-Daten außerhalb des Containers speichern, wird beim Starten eines neuen Images mit einem neuen Kennwort das Kennwort effektiv rotiert.

  1. Fahren Sie das aktuelle Image herunter und entfernen Sie es
  2. Legen Sie einen neuen Wert für das Kennwort entweder in der Umgebungsvariablen TSM_REMOTE_PASSWORD oder TSM_REMOTE_PASSWORD_FILE (siehe oben) in Ihrer Image-Konfiguration fest.
  3. Starten Sie das Image erneut.
Rotieren Sie das Kennwort manuell in einem ausgeführten Container

Wenn Sie das Image nicht herunterfahren möchten, können Sie das Kennwort immer noch manuell rotieren.

  1. Öffnen Sie eine Shell im aktuellen Container
  2. Melden Sie sich als Remote-Benutzerkonto mit dem Befehl su an
  3. Führen Sie den Befehl passwd aus, um das Passwort zu ändern.

    Warnung: Diese manuellen Rotationen bleiben nur so lange bestehen, wie die Schreibebene der Containerinstanz vorhanden ist. Wenn Sie den Container löschen, werden die manuellen Änderungen beim Starten eines neuen Containers nicht übernommen.

 

Optionen für die Erstkonfiguration

Das Konfigurieren von Tableau Server in einem Container ist für das gewünschte Tableau Server-Verhalten von entscheidender Bedeutung. Tableau Server in einem Container ist eine Neuinstallation von Tableau Server. Daher müssen Sie dem Container die gleichen Informationen zur Verfügung stellen wie bei der Konfiguration von Tableau Server außerhalb eines Containers.

Laufzeitumgebungsvariablen

Die folgenden Laufzeitumgebungsvariablen teilen dem Image von Tableau Server in einem Container mit, wie Tableau Server bereitgestellt werden soll. Eine Teilmenge davon wird ausführlicher beschrieben.

Alle diese Werte sind so ausgelegt, dass sie überschrieben werden können, um mehr Flexibilität bei der Konfiguration zu ermöglichen.

UmgebungsnameStandardBeschreibung
ACCEPTEULA0Wird automatisch auf 1 gesetzt, wenn ein Image mit dem Einrichtungstool für Tableau Server in einem Container erstellt wird.
LICENSE_KEY Legen Sie den Lizenzschlüssel fest, der zum Lizenzieren des Servers verwendet wird. Akzeptiert mehrere durch Komma getrennte Lizenzen.
LICENSE_KEY_FILE/docker/config/license_file Dateipfad zur Lizenzdatei. Das Format der Lizenzdatei sollte ein Lizenzschlüssel pro Zeile sein.
REGISTRATION_FILE/docker/config/tableau_reg.jsonDateipfad zur Registrierungsdatei im Image. Standardmäßig sind hier die Registrierungsinformationen enthalten, die beim Erstellen des Images von Tableau Server in einem Container bereitgestellt wurden. Diese Informationen können zur Laufzeit überschrieben werden. Weitere Informationen finden Sie unter Aktivieren und Registrieren von Tableau Server.
REGISTRATION_DATA Eine alternative Möglichkeit zum Überschreiben von Registrierungsinformationen zur Laufzeit. Diese Umgebungsvariable muss auf einen serialisierten JSON-String festgelegt werden, der dieselben Registrierungsinformationen enthält, die auch in einer Tableau Server-Registrierungsdatei zu finden wären. Weitere Informationen finden Sie unter Aktivieren und Registrieren von Tableau Server.
TABLEAU_USERNAME Dies bezieht sich auf das ursprüngliche Administratorkonto in Tableau Server. Dies wird empfohlen, ist jedoch optional. Wenn dieser Benutzer nicht festgelegt ist, muss das ursprüngliche Administratorkonto für Tableau Server mit tabcmd eingerichtet werden. Wenn diese Variable auf einen Wert festgelegt ist, ist auch ein Kennwort erforderlich. Dies wird nur verwendet, wenn Tableau Server zum ersten Mal initialisiert wird. Wenn Sie diesen Wert einstellen, wird Tableau Server in einem Container aufgefordert, automatisch zu versuchen, den Benutzer zu initialisieren. Weitere Informationen finden Sie unter Hinzufügen eines Administratorkontos.
TABLEAU_PASSWORD Ein Nur-Textkennwort für den Tableau-Benutzer. Dies bezieht sich auf das ursprüngliche Administratorkonto in Tableau Server. Dies ist bei Angabe von TABLEAU_USERNAME erforderlich. Weitere Informationen finden Sie unter Hinzufügen eines Administratorkontos.
TABLEAU_PASSWORD_FILE Ein Dateipfad zu einer Datei, die nur den Kennworttext für den Tableau-Benutzer enthält. Dies bezieht sich auf das ursprüngliche Administratorkonto in Tableau Server. Dies ist bei Angabe von TABLEAU_USERNAME erforderlich. Weitere Informationen finden Sie unter Hinzufügen eines Administratorkontos.
CONFIG_FILE/docker/config/config.json

Dateipfad zur Standard-TSM-Konfigurationsdatei. Die Datei wird zum Konfigurieren von Tableau Server verwendet. Weitere Informationen finden Sie unter Beispiel für eine Konfigurationsdatei.

Legen Sie CONFIG_DATA nicht fest, wenn CONFIG_FILE verwendet wird.

CONFIG_DATA Dies kann als Ersatz für CONFIG_FILE verwendet werden. Wenn Sie dem Server eine Konfiguration bereitstellen möchten, ohne eine externe Datei zu mounten, legen Sie diese Umgebungsvariable auf den entsprechenden serialisierten Inhalt einer TSM-Konfigurationsdatei fest.

Beispiel: CONFIG_DATA="{\"configEntities\":{\"identityStore\":{\"_type\":\"identityStoreType\",\"type\":\"local\"}}}" Weitere Informationen finden Sie unter Beispiel für eine Konfigurationsdatei.

Legen Sie CONFIG_DATA nicht fest, wenn CONFIG_FILE verwendet wird.

IGNORE_TOPOLOGY_CONFIG00 oder 1. Wenn der Wert auf 1 gesetzt ist, ignoriert der Container jede topologiebezogene Konfiguration, die in der durch CONFIG_FILE bestimmten Konfigurationsdatei vorhanden ist.
BACKUP_FILE/docker/config/backup/backup-file.tsbakDer Dateipfad zu einer Tableau Server-Sicherungsdatei (.tsbak). Wenn dieser während der Initialisierung angegeben wird, versucht der Server eine Wiederherstellung.
INIT_CONTAINER00 oder 1. Wenn auf 1 gesetzt, versucht Tableau Server nur, TSM und Tableau Server zu initialisieren. Der Container wird nach Abschluss beendet.
TSM_ONLY00 oder 1. Entspricht der Installation der Tableau Server-RPM und der Ausführung von "initialize-tsm". Nur die TSM(Tableau Service Manager)-Dienste werden gestartet. Funktioniert NUR, wenn der Container zum ersten Mal initialisiert wird (dies funktioniert nicht, wenn Tableau Server in einem Container mit einem zuvor initialisierten Serververzeichnis gestartet wird).
BOOTSTRAP_INSTALL00 oder 1. Gibt an, ob der Server ein Anfangsknoten oder ein zusätzlicher Knoten ist. Wenn auf 1 gesetzt, wartet der Container unbegrenzt ab, bis eine Bootstrap-Datei an dem durch $BOOTSTRAP_FILE angegebenen Speicherort vorhanden ist.
ALWAYS_WRITE_BOOTSTRAP_FILE0 0 oder 1. Wenn auf 1 festgelegt, schreibt der Container eine Bootstrap-Datei an den Speicherort unter BOOTSTRAP_FILE.
WAIT_FOR_BOOTSTRAP_FILE10 oder 1. Wenn der Wert auf 1 (Standard) gesetzt ist, erkennt der Container, dass es sich um eine Worker-Installation handelt (BOOTSTRAP_INSTALL=1). Der Container wartet auf unbestimmte Zeit, bis eine Datei gefunden wird, die sich an dem in BOOTSTRAP_FILE angegebenen Pfad befindet. Wenn dieser Wert beim Startvorgang auf 0 gesetzt wird, wird diese Wartezeit übersprungen. Dies kann in einigen Debug-Fällen nützlich sein.
BOOTSTRAP_FILE/docker/config/bootstrap/bootstrap.jsonDateipfad zur Bootstrap-Datei. Gilt nur für Worker-Container. Diese Datei sollte nur auf eine Bootstrap-Datei verweisen. Eine typische Verwendung wäre, das Verzeichnis der Zieldatei (Standard wäre /docker/config/bootstrap) auf dem Host zu mounten.
BOOTSTRAP_DATADies kann als Ersatz für BOOTSTRAP_FILE verwendet werden. Wenn Sie eine Bootstrap-Datei bereitstellen wollen, ohne eine externe Datei zu mounten, legen Sie diese Umgebungsvariable auf den entsprechenden serialisierten Inhalt einer TSM-Bootstrap-Datei fest. Legen Sie BOOTSTRAP_DATA nicht fest, wenn Sie BOOTSTRAP_FILE verwenden.
PORT_RANGE_MIN8800 Aus Leistungsgründen wird empfohlen, nur 200 Ports (8800–9000) anstelle des standardmäßigen lokalen Portbereichs von Tableau Server (8000–9000) bereitzustellen, da sich die Bereitstellung von 1.000 Ports in Docker negativ auf die Startzeit des Docker-Images auswirken kann. Weitere Informationen finden Sie unter Offenlegen von Lizenzierungs- und TSM-Ports weiter unten.
PORT_RANGE_MAX9000Es wird empfohlen, nur 200 Ports (8800–9000) anstelle des standardmäßigen lokalen Portbereichs von Tableau Server (8000–9000) bereitzustellen, da sich die Bereitstellung von 1.000 Ports in Docker negativ auf die Startzeit des Docker-Images auswirken kann. Weitere Informationen finden Sie unter Offenlegen von Lizenzierungs- und TSM-Ports weiter unten.
HTTP_PROXY Um http-Anforderungen an Ihren Proxyserver weiterzuleiten, legen Sie diese Umgebungsvariable so fest, dass sie Ihren Proxyhost anspricht. Um beispielsweise den Proxy auf "example-host" für Port 8080 zu setzen: HTTP_PROXY=http://example-host:8080/
HTTPS_PROXY Um https-Anforderungen an Ihren Proxyserver weiterzuleiten, legen Sie diese Umgebungsvariable so fest, dass sie Ihren Proxyhost anspricht. Um beispielsweise den Proxy auf example-host für Port 443 festzulegen: HTTPS_PROXY=http://example-host:443/ Achten Sie darauf, "http" zu verwenden, wenn Sie die URL für die Umgebungsvariable HTTPS_PROXY angeben.
NO_PROXY Um den Proxyserver zu umgehen, geben Sie Ausnahmen in der "no_proxy"-Variablen an. Verwenden Sie diese Variable, wenn Ihr Proxyserver keine internen Adressen weiterleitet. Sie müssen dieser Proxykonfiguration auch Ausnahmen hinzufügen, damit nicht die gesamte Kommunikation in einem lokalen Tableau Server-Cluster (unabhängig davon, ob dieser Cluster bereits vorhanden ist oder erst später angelegt wird) an den Proxyserver weitergeleitet wird. Geben Sie sowohl den Hostnamen als auch die IP-Adresse für jeden Computer ein und fügen Sie den Hostnamen des Containers hinzu. Fügen Sie außerdem den kanonischen Hostnamen (localhost) und die IP-Adresse (127.0.0.1) für den lokalen Computer ein. So geben Sie beispielsweise Ausnahmen für einen Cluster mit drei Knoten an: NO_PROXY="localhost,127.0.0.1,hostname1,hostname2,hostname3,IP1,IP2,IP3"
COORDINATION_SERVICE_CLIENT_PORTJeder Port zwischen PORT_RANGE_MIN und PORT_RANGE_MAX Clientport für den Koordinationsdienst.
COORDINATION_SERVICE_PEER_PORTJeder Port zwischen PORT_RANGE_MIN und PORT_RANGE_MAX Peerport für den Koordinationsdienst.
COORDINATION_SERVICE_LEADER_PORTJeder Port zwischen PORT_RANGE_MIN und PORT_RANGE_MAX Leaderport für den Koordinationsdienst.
LICENSE_SERVICE_VENDOR_DAEMON_PORTJeder Port zwischen PORT_RANGE_MIN und PORT_RANGE_MAX Anbieter-Daemon-Port für den Lizenzierungsdienst.
AGENT_FILE_TRANSFER_PORTJeder Port zwischen PORT_RANGE_MIN und PORT_RANGE_MAX Dateitransferport für den Agent-Dienst.
CONTROLLER_PORTJeder Port zwischen PORT_RANGE_MIN und PORT_RANGE_MAX https-Port für den Controller-Dienst.
REQUESTED_LEASE_TIMEDer Standardwert ist derzeit auf 4 Stunden eingestellt.Legen Sie die angeforderte Leasingdauer für Server-ATR-Aktivierungen fest. Sie müssen den Zeitwert in Sekunden angeben und die Mindestdauer beträgt 14.400 Sekunden (oder 4 Stunden). Es wird im Allgemeinen nicht empfohlen, diesen Wert für Produktionsbereitstellungen zu ändern. Wenn Sie jedoch mit Tableau Server in einem Container entwickeln oder Prototypen erstellen, sollten Sie diesen Wert auf das Minimum setzen, um den Verlust von Aktivierungen zu minimieren.

Schreibgeschützte Umgebungsvariablen

Dies sind Umgebungseigenschaften, die einige der grundlegenden Eigenschaften des Images von Tableau Server in einem Container beschreiben. Ein Überschreiben dieser Werte wird nicht empfohlen.

UmgebungsnameStandardBeschreibung
PRE_INIT_COMMAND_SCRIPT${DOCKER_CONFIG}/customer-files/pre_init_commandPfad zu einer benutzerdefinierten Bash- bzw. ausführbaren Datei zur Ausführung in Tableau Server vor der Initialisierung. Hinweis: Stellen Sie sicher, dass die Datei die Ausführungsberechtigung für alle Benutzer hat. Führen Sie andernfalls chmod +rx <path-to-pre-init-command-file> aus.
POST_INIT_COMMAND_SCRIPT${DOCKER_CONFIG}/customer-files/post_init_commandPfad zu einer benutzerdefinierten Bash- bzw. ausführbaren Datei, die in Tableau Server ausgeführt werden soll, nachdem der Server voll funktionsfähig ist und gestartet wurde. Hinweis: Stellen Sie sicher, dass die Datei die Ausführungsberechtigung für alle Benutzer hat. Führen Sie andernfalls chmod +rx <path-to-post-init-command-file> aus.
DATA_DIR/var/opt/tableau/tableau_serverDas Datenverzeichnis, in das Tableau Server-Bits geschrieben werden sollen.
INSTALL_DIR/opt/tableau/tableau_serverDas Installationsverzeichnis, in das Tableau Server-Installationsbits geschrieben werden.
SERVICE_NAMETableau ServerName der Anwendung, die im Container ausgeführt wird.
SERVICE_VERSIONk. A.Version von Tableau Server, die im Container installiert ist.
DOCKER_CONFIG/dockerVerzeichnis, das die Tableau-spezifische Docker-Konfiguration enthält.
ENV_FILE${DOCKER_CONFIG}/customer-files/environmentDatei, die alle Überschreibungen der Benutzerumgebung enthält.

Umgebungsvariablen für die Erstellungszeit

   
BASE_IMAGE_URLVerwenden Sie den Befehl des Build-Tools: build-image -bDas im build-image-Tool und im Dockerfile angegebene Standard-Image ist das einzige offiziell unterstützte Basis-Image. Dieser Parameter kann verwendet werden, um entweder eine Kopie dieses spezifischen Basis-Images aus einem benutzerdefinierten Docker-Image-Repository abzurufen oder um ein benutzerdefiniertes Basis-Image zu definieren. Wenn Sie sich für die Verwendung eines benutzerdefinierten Basis-Images entscheiden, müssen Sie sicherstellen, dass es auf UBI 8 (CentOS oder RHEL 7 für Version 2022.1 und früher) basiert und die erforderlichen Ressourcen enthält, um Tableau Server ordnungsgemäß auszuführen. Weitere Informationen zu benutzerdefinierten Basis-Images finden Sie unter Tableau Server in einem Container – Verwenden eines Images.
PRIVILEGED_TABLEAU_GID997 Die GID der privilegierten Tableau-Gruppe.
UNPRIVILEGED_TABLEAU_GID998 Die GID der nicht privilegierten Tableau-Gruppe.
UNPRIVILEGED_TABLEAU_UID999 Die UID des Benutzers, der Tableau-Prozesse ausführt (Einzelbenutzerbereitstellung).
UNPRIVILEGED_USERNAMEtableau Der Zeichenfolgenname des privilegierten Benutzers.
UNPRIVILEGED_GROUP_NAMEtableau Der Zeichenfolgenname der nicht privilegierten Gruppe.
PRIVILEGED_GROUP_NAMEtsmadmin Der Zeichenfolgenname der privilegierten Gruppe.
LANGen_US.UTF-8Gebietseinstellung

 

Tableau Server-Konfigurationsüberschreibungen

Diese Umgebungsvariablen können von Docker überschrieben werden, um auf eine beliebige Datei im Container zu verweisen. Wenn Sie also einen anderen Bereitstellungspunkt angeben möchten, können Sie dies gern tun.

Tableau Server benötigt für den Start und die Ausführung eine Konfigurationsdatei:

CONFIG_FILE=/docker/config/config.json

CONFIG_FILE verweist auf eine TSM-Konfigurationsdatei. Das Format und die Verwendung sind identisch mit der Konfigurationsdatei, die im Beispiel für eine Konfigurationsdatei beschrieben wird.

Vorinitialisierungs- und Nachinitialisierungsbefehle

Tableau Server führt ein automatisiertes Installationsskript aus, das dazu dient, den Server von einem vorinitialisierten Zustand in den voll funktionsfähigen Zustand zu versetzen. Manchmal ist es jedoch sinnvoll, einen eigenen Automatisierungscode in den Initialisierungsprozess einzubinden. Dazu stellen wir zwei Hooks zur Verfügung: das Vorinitialisierungsskript und das Nachinitialisierungsskript.

Vorinitialisierungsskript

Dieses Skript wird unmittelbar nach der Initialisierung der TSM-Basisprozesse und vor der Ausführung aller anderen TSM-Einrichtungsschritte ausgeführt. Dies ist nützlich, um TSM-Konfigurationsbefehle auszuführen, bevor Tableau Server gestartet wird. Für Konfigurationsänderungen, die zu diesem Zeitpunkt vorgenommen werden, müssen Sie die Änderungen nicht anwenden, da die normale Tableau Server-Automatisierung dies nach Beendigung Ihres Skripts erledigt.

Nachinitialisierungsskript

Dieses Skript wird ausgeführt, nachdem alle anderen Tableau Server-Initialisierungs- und Startautomatisierungen abgeschlossen sind. Tableau Server ist voll funktionsfähig und läuft, wenn dieses Skript ausgeführt wird. Zu diesem Zeitpunkt vorgenommene Konfigurationsänderungen müssen angewendet werden.

Anleitung

Gehen Sie folgendermaßen vor, um einem dieser Hooks in Ihrem Image ein benutzerdefiniertes Skript hinzuzufügen:

  1. Schreiben Sie Ihr benutzerdefiniertes Skript.
  2. Kopieren Sie das benutzerdefinierte Skript in das Verzeichnis customer-files des build-image-Tools von Tableau Server in einem Container.
  3. Benennen Sie das Skript entweder in pre_init_command oder in post_init_command um, abhängig davon, wann das Skript ausgeführt werden soll (Sie können beide Hooks unabhängig voneinander verwenden).
  4. Stellen Sie sicher, dass die Berechtigungen des Skripts entweder von anderen ausgeführt werden können (chmod +rx <command-file>) oder dass die Besitzerberechtigungen mit dem nicht privilegierten Benutzer im Container übereinstimmen.

Benutzerkonfiguration

Tableau Server verwendet einen nicht privilegierten Benutzer, um Serverprozesse auszuführen. Dieser Benutzer wird beim Initialisieren von Tableau Server in einem Container im Container erstellt. Standardmäßig wird der Benutzer als tableau mit der UID 999 benannt. Wenn Sie Tableau Server in einem Container bereitstellen, der Einstellungen zum externen Speichern von Daten auf dem Hostcomputer verwendet, sollten Sie die UID ändern, um eine UID dem Hostcomputer zuzuordnen. Die Verwendung von Docker-Namespaces ist eine weitere Möglichkeit, das gleiche Ergebnis zu erzielen.

Containerdienstprogramme und -Tools von Tableau Server in einem Container

Alle Containerdienstprogramme und Toolfunktionen von Tableau Server in einem Container werden in diesem Verzeichnis abgelegt:

/docker/

Dateiberechtigungsverwaltung

Wenn Sie Konfigurationsdateien an den Container übergeben, sollten Sie sicherstellen, dass der Benutzer, der den Tableau Server-Prozess innerhalb des Containers ausführt, über die Berechtigung zum Zugriff auf die Dateien verfügt. Um zu vermeiden, dass allen Benutzern Zugriff auf Dateien gewährt werden, die dem Container bereitgestellt werden, können Sie die UID und/oder die GID des Benutzers ändern, der Tableau Server innerhalb des Containers ausführt, sodass er dem Benutzer/Gruppenbesitzer auf dem Host entspricht. Der Containerbenutzer verfügt über eine UID, die durch die UNPRIVILEGED_TABLEAU_UID-Umgebungsvariable (Standard: 999) und die GID UNPRIVILEGED_TABLEAU_GID (Standard: 998) festgelegt wird. Diese Werte können durch Überschreiben der Umgebungsvariablen geändert werden oder Sie können eine Docker-Benutzernamespace-Zuordnung verwenden, um die UID/GID im Container einer anderen UID/GID auf dem Host zuzuordnen.

Kennwortverwaltung

Für bestimmte Funktionen und Optionen müssen Benutzeranmeldeinformationen als Konfigurationseinstellung im Container bereitgestellt werden. Die Anmeldeinformationen für den Erstadministrator von Tableau sind ein Beispiel für optionale Anmeldeinformationen, die zusätzliche Funktionen aktivieren. In diesen Fällen bieten wir immer zwei Methoden zum Festlegen des Kennworts an. Zum einen können Sie eine Datei mit dem Kennwort und einen Dateipfad für eine Umgebungsvariable angeben. Alternativ können Sie eine Umgebungsvariable festlegen, um das Kennwort direkt zu speichern.

Die empfohlene und sicherere Option besteht darin, das Kennwort als Dateipfad für den Container anzugeben. Die Speicherung eines Geheimnisses in einer Datei ist eine gut unterstützte Funktion in Docker, Docker Swarm, Kubernetes und anderen Containerorchestrierungssystemen. Das Speichern von Kennwörtern direkt in Umgebungsvariablen ist ein gängiges Muster, daher unterstützen wir es. In der Regel bedeutet es aber, dass das Kennwort weniger gut geschützt ist.

Beispiele

Werfen wir einen Blick auf die TABLEAU_USERNAME-Anmeldeinformationen. Sie können das Kennwort für den Benutzer entweder als TABLEAU_PASSWORD oder als TABLEAU_PASSWORD_FILE angeben. Beim Ausführen eines Images von Tableau Server in einem Container können Sie eine beliebige Umgebungsvariable zur Bereitstellung des Kennworts verwenden.

Die Umgebungsvariable für die Kennwortdatei benötigt einen Dateipfad innerhalb des Containers zu einer gültigen Geheimdatei. Die Geheimdatei sollte eine einzelne Zeile sein, die das Geheimnis enthält.

Beispiel für die Verwendung einer Geheimdatei
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>
Beispielinhalt einer Geheimdatei
mypassword23879172

Alternativ kann man das Kennwort direkt im Klartext in der Kennwortumgebungsvariablen speichern. Dieser Ansatz gilt als weniger sicher, aber er ist bequemer und ein gängiges Verfahren bei Containern.

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

Konfigurieren von Tableau Server nach der Ausführung

Sobald Tableau Server initialisiert wurde und ausgeführt wird, ist die beste Möglichkeit zur Interaktion mit dem Server die Verwendung des TSM-CLI-Tools. Dies ist das klassische Tableau Server-Tool zur Durchführung von Verwaltungsaufgaben. In Zukunft wird Tableau Server auf Änderungen in der statischen Konfiguration, die in der Umgebungsvariablen CONFIG_FILE bereitgestellt wird, zwischen den Ausführungen reagieren können. Vorerst müssen Sie jedoch nach der Initialisierung von Tableau Server mit dem Server mit den klassischen Tools interagieren.

Weitere Informationen zur TSM-Befehlszeile finden Sie in der tsm-Befehlszeilenreferenz.

Status

Es gibt zwei grundlegende Statusprüfungen für Tableau Server, die im Image bereitgestellt werden. Mit diesen können Sie die Aktivität und Bereitschaft des Servers überprüfen.

Aktivitätsprüfung

Die Aktivitätsprüfung zeigt an, ob TSM-Dienste ausgeführt werden. Das bedeutet, dass sie angibt, ob die orchestrierten Dienste von Tableau Server in Betrieb und funktionsfähig sind. Diese Prüfung kann hier aufgerufen werden:

/docker/alive-check

Eine weitere Möglichkeit besteht darin, Port 8850 verfügbar zu machen, den der Tableau Controller-Dienst ausführt, um Verwaltungsfunktionen über einen Webbrowser bereitzustellen. Man kann den Zustand des Dienstes durch tcp-Integritätsprüfungen regelmäßig überprüfen.

Bereitschaftsprüfung

Die Bereitschaftsprüfung gibt an, ob Tableau Server ausgeführt wird und die Geschäftsdienste bereit sind, Datenverkehr zu empfangen. Dies kann mit folgendem Skript festgestellt werden:

/docker/server-ready-check

Eine weitere Möglichkeit besteht darin, tcp-Integritätsprüfungen für Port 8080 (oder den Port, der in Tableau Server für den Empfang von Datenverkehr bestimmt ist) zu verwenden. Manchmal ist diese Art der tcp-Integritätsprüfung zuverlässiger als der Server-Ready-Check, da dieser auf dem an TSM berichteten Dienststatus basiert, der manchmal verzögert sein kann, wenn der Dienststatus aktualisiert wird.

Persistente Daten

Häufig möchten wir bei Containern die Möglichkeit haben, einen Container herunterzufahren und wieder hochzufahren, ohne dass wichtige Informationen verloren gehen. Tableau Server in einem Container unterstützt dies, da Sie bestimmte Verzeichnisse außerhalb des Containers bereitstellen können, sodass Sie Containerinstanzen vollständig zerstören oder entfernen können und Ihre Daten trotzdem erhalten bleiben. Diese Daten können verwendet werden, um eine andere Containerinstanz zu starten und dort fortzusetzen, wo der vorherige Container aufgehört hat.

In den folgenden Abschnitten werden die verschiedenen Arten von verwalteten Zuständen behandelt.

Tableau Server-Daten

Die Server-Daten werden alle im Datenverzeichnis gespeichert. Im Datenverzeichnis werden alle benutzerbezogenen Daten und Dienstlaufzeitmetadaten gespeichert. Die Externalisierung dieser Daten sorgt dafür, dass die Daten Ihrer Benutzer auch dann noch erhalten bleiben, wenn Tableau Server in einem Container komplett entfernt wird.

Diese Daten sind übertragbar und können mit Cloud-verwalteten Blockspeichersystemen wie AWS EBS-Volumes verwendet werden.

Wenn Tableau Server in einem Container in Verbindung mit einem externen Dateispeicher verwendet wird, muss sich das Datenverzeichnis auf EBS befinden. Verwenden Sie kein Netzwerkdateisystem (z. B. NFS) für das Datenverzeichnis. Das Verzeichnis für den externen Dateispeicher kann sich auf einem NFS-Volume befinden.

Statische Hostnamen

Tableau Server kommt mit dynamischen Hostnamenänderungen nicht gut zurecht. Daher ist es wichtig, den internen Hostnamen des Containers anzugeben, damit er zwischen Containerausführungen konsistent ist. Der Hostname in einem Container ist beliebig und kann auf jeden Wert festgelegt werden. Mit der --hostname-Option kann man den internen Hostnamen des Containers festlegen. Stellen Sie sicher, dass nachfolgende Container, die dieselben persistenten Daten verwenden, mit demselben Hostnamenwert ausgeführt werden.

Dies ist nicht zu verwechseln mit Serverinstallationen mit mehreren Knoten. In diesen sollte zusätzlichen Knoten jeweils ein anderer Hostname zugewiesen werden. Wichtig ist, dass beim Neustart eines einzelnen Containers der ersetzende Container, der die gleichen persistenten Daten für diese Instanz verwendet, einen übereinstimmenden Hostnamen aufweisen muss.

Vollständiges Beispiel

Hier ein Beispiel, bei dem das Datenverzeichnis außerhalb des Containers gemountet ist.

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>

Sicherung und Wiederherstellung

Tableau Server in einem Container unterstützt das Erstellen von Sicherungen durch Tableau Server und die Wiederherstellung aus einer Sicherungsdatei (.tsbak). Der erste Schritt besteht darin, ein Image von Tableau Server in einem Container auszuführen, die Sicherungsdatei (.tsbak) in das Image einzubinden und die Umgebungsvariable BACKUP_FILE mit dem Dateipfad zur Sicherungsdatei festzulegen. Zusätzlich müssen Sie die Sicherungs-JSON-Konfigurationsdatei in der Umgebungsvariablen CONFIG_FILE angeben. Der Tableau Server-Container automatisiert den Wiederherstellungsprozess selbst bei Bereitstellungen mit mehreren Knoten. Falls diese Automatisierung zu irgendeinem Zeitpunkt das System nicht vollständig wiederherstellen kann, können Sie jederzeit auf die klassischen Tableau Server-Tools und -Prozesse wie TSM-Befehle zurückgreifen, um mit Tableau Server auf die gleiche Weise wie bei einer Nicht-Container-Bereitstellung zu interagieren.

Weitere Informationen darüber, wie Sie eine Sicherung und Wiederherstellung einer Standard-Tableau Server-Instanz durchführen können, finden Sie unter Durchführen einer vollständigen Sicherung und Wiederherstellen von Tableau Server.

Sichern im Tableau Server-Container

  1. Öffnen Sie die Shell innerhalb der Version A von Tableau Server in einem Container. Erstellen Sie eine Repository-Sicherung sowie Topologie- und Konfigurationssicherungsdateien.

    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. Kopieren Sie die im vorherigen Schritt erstellten Dateien auf den Hostcomputer. Ändern Sie die Dateiberechtigung so, dass für beide Dateien eine Read-All-Berechtigung festgelegt ist.

    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. Speichern Sie die Sicherungsartefakte an einem sicheren Speicherort. Befolgen Sie bei Bedarf die folgenden Wiederherstellungsschritte.

Wiederherstellen im Tableau Server-Container

Sicherungen von jeder unterstützten Tableau Server-Version (Container und Nicht-Container) können innerhalb des Tableau Server-Containers wiederhergestellt werden.

Voraussetzungen
  • Tableau Server-Sicherungsdatei.
  • Konfigurations-JSON-Datei, die sowohl Konfigurations- als auch Topologieinformationen enthält.
  • Hinweis: Sie müssen die Sicherungsdateien wahrscheinlich so ändern, dass die Read-All-Berechtigung vorhanden ist. Sicherungsdateien sind in der Regel für den Benutzer gesperrt, der die Datei erstellt hat. Dieser ist wahrscheinlich ein anderer als der Tableau-Benutzer, der im Container ausgeführt wird.
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>

Hinweise:

  • Wenn Sie ein System mit mehreren Knoten wiederherstellen, müssen Sie auch die anderen Knoten starten, damit die Wiederherstellungsautomatisierung funktioniert. Weitere Informationen finden Sie im Abschnitt Tableau Server in einem Container mit mehreren Knoten in diesem Dokument. Nur der Anfangsknoten benötigt die Sicherungsdatei, die Sicherungskonfigurationsdatei und die Lizenz.
  • Die Sicherungsdateien müssen nur bei der ersten Ausführung des Containers bereitgestellt werden. Sobald der Server initialisiert ist, müssen Sie die Sicherungsdateien nicht mehr einbinden.

 

Migrieren von Tableau Server zu Tableau Server in einem Container

Um von einer standardmäßigen Tableau Server-Installation zu Tableau Server in einem Container zu migrieren, müssen Sie die Sicherungs- und Wiederherstellungstechnik verwenden. Sicherungen von jeder unterstützten Tableau Server-Version (Container und Nicht-Container) können innerhalb des Tableau Server-Containers wiederhergestellt werden. Weitere Informationen finden Sie im Abschnitt Wiederherstellen im Tableau Server-Container oben.

Aktualisierung der Tableau Server-Version

Es gibt zwei Möglichkeiten, Tableau Server zu aktualisieren. Die in diesem Abschnitt aufgeführte Upgrade-Image-Methode ist die empfohlene Lösung. Als Fallback ist es jedoch auch möglich, Tableau Server mit Sicherung/Wiederherstellung zu aktualisieren.

Aktualisierung durch Upgrade-Image-Methode

Das Upgrade-Image ist ein Docker-Image, das mit dem Skript build-upgrade-image im Einrichtungstool für Tableau Server in einem Container erstellt werden kann. Der Zweck des Images besteht ausschließlich darin, den derzeit ausgeführten Tableau Server in einem Container zu aktualisieren.

Befolgen Sie die nachstehenden Schritte, um die Aktualisierung durchzuführen.

  1. Erstellen Sie ein Upgrade-Image mit dem Skript build-upgrade-image. Zum Erstellen dieses Containers wird die Tableau Server-RPM der neuen Version benötigt.
  2. Fahren Sie den Container herunter, in dem derzeit Tableau Server ausgeführt wird.
  3. Starten Sie das Upgrade-Image und binden Sie das Datenverzeichnis aus dem im vorherigen Schritt heruntergefahrenen Container ein.
  4. Der Aktualisierungsprozess dauert eine Weile, aber der Tableau-Server wird aktualisiert. Überprüfen Sie die Docker-Protokolle auf Informationen zum Aktualisierungsprozess. Der Container wird nach dem Aktualisierungsprozess heruntergefahren.
  5. Starten Sie eine neuere Version von Tableau Server in einem Container. Binden Sie das Verzeichnis aus den vorherigen Schritten ein.

Beispiel:

Nehmen wir an, wir haben einen Tableau Server in einem Container, auf dem Tableau Server ausgeführt wird. Hier sind einige Annahmen zu diesem Beispiel:

  • Ich verfüge über wichtige Daten und möchte während des Aktualisierungsprozesses keine Daten verlieren. Das Datenverzeichnis muss außerhalb des Containers bestehen bleiben.
  • Der Container heißt "my-server". Das Docker-Image heißt "tableau-server:versionA".
  • Die derzeit von "my-server" verwendete Serverversion ist Version A.
  • Die Serverversion, auf die ich aktualisieren möchte, ist Version B.
  1. Rufen Sie die Tableau Server-RPM für Version B ab. Erstellen Sie ein 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. Stoppen Sie den Container "my-server".

    docker stop my-server -t 120
  3. Starten Sie das neu erstellte Image "tableau-server-upgrade:versionAB". Binden Sie das Datenverzeichnis des zuvor gestoppten Containers ein. Der Container startet den Aktualisierungsprozess auf Version B.

    docker run --name my-upgrade-server \
    -v <data-dir mount from previous step>:/var/opt/tableau \
    ...
    tableau-server-upgrade:versionAB
  4. Der Container wird angehalten, sobald die Aktualisierung abgeschlossen ist. Überprüfen Sie die Docker-Protokolle auf Aktualisierungsprozessprotokolle und stellen Sie sicher, dass der Aktualisierungsprozess erfolgreich war. Sie können auch den Exitcode des Docker-Containers überprüfen, um sicherzustellen, dass der Aktualisierungsprozess erfolgreich abgeschlossen wurde.

    # 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. Stoppen Sie den Container "my-upgrade-server". Starten Sie die neue Version B des Images von Tableau Server in einem Container und binden Sie das Datenverzeichnis des angehaltenen Containers "my-upgrade-server" ein.

    # 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

Aktualisierung durch Sicherungs-Wiederherstellungs-Methode

Befolgen Sie die Schritte im Abschnitt "Sichern und Wiederherstellen" dieses Dokuments. Die einzige Anpassung, die erforderlich ist, um einen Sicherungs-Wiederherstellungs-Vorgang in einen Aktualisierungsvorgang umzuwandeln, ist die Wiederherstellung der Sicherung auf einer neuen Version von Tableau Server.

Tableau Server in einem Container mit mehreren Knoten

Tableau Server in einem Container mit mehreren Knoten bezieht sich auf eine einzelne Bereitstellung von Tableau Server, die über mehrere Knoten verteilt ist. Mehrere Knotenpunkte sind in diesem Kontext das Gleiche wie Tableau Server mit mehreren Knotenpunkten, wo bestimmte Prozesse auf anderen Knotenpunkten ausgeführt werden können, um Kapazität, Rechenleistung usw. zu steigern. Dies unterscheidet sich vom Starten mehrerer einzelner Tableau Server in einem Container, bei denen jeder Container ein unabhängiger Server mit seinen eigenen Daten ist.

Tableau Server in einem Container mit mehreren Knoten funktioniert ähnlich wie eine Tableau Server-Installation ohne Container mit mehreren Knoten und nutzt denselben zugrunde liegenden Mechanismus. Einen Überblick über das Einrichten einer Tableau Server-Installation ohne Container mit mehreren Knoten finden Sie unter Verteilte Tableau Server-Installationen mit Hochverfügbarkeit.

Nachfolgend finden Sie ein Beispiel:

Grundlegende Verwendung mehrerer Knotenpunkte

Anfangsknoten

Option 1: Verwenden Sie Folgendes, wenn die Serverkonfiguration (CONFIG_FILE) eine Topologie mit mehreren Knoten vorgibt:

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>

Option 2: Verwenden Sie Folgendes, wenn Sie eine Bereitstellung mit mehreren Knoten wünschen, auch wenn die Serverkonfiguration keine Topologie mit mehreren Knoten vorgibt:

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>
Weiterer Knoten
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>

Offenlegen von Lizenzierungs- und TSM-Ports

Damit Workerknoten mit der primären Instanz kommunizieren können, müssen wir zusätzliche Ports öffnen. Sie müssen den Datenverkehr von anderen Knoten auf Ihrer primären Instanz von Tableau Server in einem Container in den folgenden Portbereichen zulassen:

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

Achten Sie darauf, wie viele Ports Sie öffnen: Wir empfehlen, nur 200 Ports (8800–9000) anstelle des Standardportbereichs von Tableau Server (8000–9000) freizugeben, da die Freigabe von 1.000 Ports in Docker die Leistung und die Startzeit des Docker-Images negativ beeinflussen kann. Je nachdem, wie komplex Ihre Tableau Server-Topologie ist, können Sie einen kleineren oder größeren Portbereich verwenden. Im Allgemeinen wird nicht empfohlen, weniger als 100 Ports zu öffnen, da anderenfalls das Risiko besteht, dass Dienste in einem Cluster nicht mit bestimmten Diensten kommunizieren können. Wenn Sie einen eigenen Portbereich angeben, achten Sie darauf, dass Sie Port 8850 verfügbar machen (dies ist implizit in 8800–9000 enthalten). Der Portbereich wird durch Festlegen der PORT_RANGE_MIN- und PORT_RANGE_MAX-Umgebungsvariablen angegeben.

Zusätzliche Knoten müssen auch den Serviceport-Bereich (8800–9000) verfügbar machen, nicht jedoch den Lizenzierungsportbereich. Beachten Sie, dass diese Portbereiche nur die prozessübergreifende Tableau Server-Kommunikation ermöglichen. Diese Ports sollten nicht für Benutzer oder andere Computer zur Verfügung gestellt werden, außer für Computer, auf denen Tableau Server in einem Container für denselben Cluster mit mehreren Knoten ausgeführt wird.

Diese Portregeln stimmen mit der Tableau Server-Firewalldokumentation überein. Weitere Informationen finden Sie unter Konfigurieren der lokalen Firewall.

Auflösen von Hostnamen

Die mehreren Knoten von Tableau Server in einem Container müssen mit konsistenten Hostnamen ausgeführt werden, da Tableau Server keine dynamischen Hostnamenänderungen verarbeiten kann. Wenn Tableau Server mit mehreren Knoten ausgeführt wird, möchten diese Knoten miteinander kommunizieren. Tableau Server-Knoten versuchen, sich gegenseitig mithilfe der Hostnamen zu erreichen, für die mehrere Knoten von Tableau Server in einem Container konfiguriert sind. Wenn Sie beispielsweise Ihren Anfangsknoten mit dem Hostnamen "Anfang" ausführen, versuchen zusätzliche Knoten, Daten an einen Host mit dem Namen "Anfang" zu senden. Es gibt mehrere Möglichkeiten, wie Sie Images so konfigurieren können, dass sie Hostnamen zu anderen Images auflösen. /etc/hosts-Datei in jedem Container, um den beliebigen Container-Hostnamen (z. B. "Anfang") auf die IP-Adresse abzubilden, auf der der andere Container tatsächlich ausgeführt wird.

Bootstrapping zusätzlicher Knoten

Der anfängliche Tableau Server-Container, der als Teil eines Clusters ausgeführt wird, generiert eine Bootstrap-Datei, die nachfolgende zusätzliche Knoten verwenden müssen, um dem Cluster beizutreten. Nachdem zusätzliche Knoten in der Clustertopologie registriert wurden, können Sie mit der Zuordnung von Tableau Server-Prozessen zur Ausführung darauf beginnen. Dieser Vorgang kann vollständig automatisiert werden. Wenn Sie eine Tableau Server-Konfigurationsdatei bereitgestellt haben (in der Regel durch Einbinden einer Konfigurationsdatei in den durch CONFIG_FILE angegebenen Dateipfad, Standardpfad: /docker/config/config.json), die eine Topologie mit mehreren Knoten vorgibt, wartet der Anfangsknoten automatisch, bis sich alle zusätzlichen Knoten registriert haben. Nach der Registrierung wird die Topologie mit mehreren Knoten auf den gesamten Cluster angewendet.

Sobald der Anfangsknoten in Tableau Server in einem Container Tableau Server vollständig ausführt, können Sie eine Bootstrap-Datei für weitere Knoten generieren lassen:

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

Dieser Befehl wird automatisch aufgerufen, wenn Sie den Wert von ALWAYS_WRITE_BOOTSTRAP_FILE auf 1 festlegen.

Sicherheitsüberlegungen

Die Bootstrap-Datei enthält Servergeheimnisse, die es ermöglichen, eine TSM-Sitzung mit dem Anfangsknoten einzurichten. Das bedeutet, dass ein böswilliger Benutzer, der die Datei erhalten hat, für einen bestimmten Zeitraum TSM-Befehle an den Server senden kann. Die Datei selbst enthält außerdem Daten, die die Entschlüsselung von Serverkonfigurationsgeheimnissen ermöglichen würden. Diese Datei sollte als vertraulich behandelt werden und nur Diensten und Systemen zugänglich sein, die direkt mit dem Einrichten einer Bereitstellung mit mehreren Knoten zu tun haben.

Bootstrap-Ablauf

Bootstrap-Dateien führen eine zeitlich begrenzte Sitzung aus, die 2 Stunden dauert. In diesem Zeitfenster müssen die zusätzlichen Knoten keine Anmeldeinformationen für den Anfangsknoten angeben, um als ein zusätzlicher Knoten beitreten zu können. Es ist möglich, eine Bootstrap-Datei zu verwenden, sobald die Sitzung abgelaufen ist, aber das würde bedeuten, dass Sie Anmeldeinformationen für den Anfangsknoten bereitstellen müssen.

Übertragen der Bootstrap-Datei

Die Bootstrap-Datei muss Worker-Knoten von Tableau Server in einem Container verfügbar gemacht und von diesen konsumiert werden. Die Bootstrap-Datei muss für alle anderen Knoten von Tableau Server in einem Container freigegeben werden, die Sie als Worker-Knoten für diese Bereitstellung verwenden möchten. Dies kann auf viele verschiedene Arten geschehen.

Übertragen der Datei über ein sicheres Netzwerk

Ein Teil Ihrer Automatisierung auf dem Anfangsknoten kann das Senden der Datei direkt an zusätzliche Knoten umfassen. Dies sollte mit einem sicheren Dateiübertragungsclient oder -tool erfolgen. Dies ist wahrscheinlich nützlicher in Szenarien, in denen mehrere Bootstrap-Dateien während der gesamten Lebensdauer des Anfangsknotens generiert werden können (möglicherweise, um zu einem späteren Zeitpunkt weitere zusätzliche Knoten hinzuzufügen).

Verwenden einer Netzwerkdateibereitstellung

Eine Netzwerkdateibereitstellung, die von allen Containern in einer bestimmten Bereitstellung gemeinsam genutzt wird, ist eine weitere Option.

Andere

Das letztendliche Ziel besteht darin, eine von einem Container erstellte Datei sicher in einen bestimmten Satz anderer Container zu übertragen. Daher ist jede Methode, die dies erreicht und sicher ist, geeignet.

Starten zusätzlicher Knoten

Um einen zusätzlichen Knoten von Tableau Server in einem Container zu starten, starten Sie einfach den Container mit der BOOTSTRAP_INSTALL-Umgebungsvariablen, die auf 1 festgelegt ist.

Dadurch wird die Instanz von Tableau Server in einem Container in den Ruhezustand versetzt, bis eine Bootstrap-Datei an dem von der Umgebungsvariablen BOOTSTRAP_FILE angegebenen Pfad vorhanden ist (der auch konfigurierbar ist). Die Umgebungsvariablentabelle zeigt den Standarddateipfad an. Zur Verdeutlichung: Wenn Sie ein Image von Tableau Server in einem Container im "Zusätzlicher-Knoten-Modus" ausführen, startet der Container nicht supervisord oder einen anderen Prozess, sondern ein Bash-Skript, das als PID 1 ausgeführt wird und alle 5 Sekunden überprüft, ob die Bootstrap-Datei vorhanden ist. Sobald die Datei vorhanden ist, wird Tableau Server in einem Container als zusätzlicher Knoten initialisiert.

Konfigurieren zusätzlicher Knoten

Das Konfigurieren von zusätzlichen Knoten zum Ausführen einer bestimmten Topologie funktioniert genauso wie in einer normalen Bereitstellung von Tableau Server. Es hat auch die gleichen Anforderungen, was bedeutet, dass das Hinzufügen neuer Prozesse auf einem Knoten möglicherweise einen Cluster-weiten Neustart erfordert. Weitere Informationen finden Sie unter Konfigurieren von Knoten.

Überlegungen zu Tableau Server-Funktionen

Einige Tableau Server-Funktionen verhalten sich in Containern anders. In diesem Abschnitt werden bestimmte Funktionen behandelt, für die in einer Containerumgebung besondere oder andere Überlegungen gelten.

Active Directory

Festlegen von AD-Domänencontroller

Wenn Sie Active Directory als Identitätsspeicher für Tableau Server-Webseiten und -Sites verwenden möchten, müssen Sie einen zusätzlichen Hinweis berücksichtigen. Instanzen von Tableau Server, die in Linux-Umgebungen ausgeführt werden, bestimmen dynamisch, mit welchem AD-Domänencontroller kommuniziert werden soll, indem sie ihr IP-Subnetz untersuchen. Containern können beliebige IP-Adressen zugewiesen werden und in diesem Fall ist Tableau Server nicht unbedingt in der Lage, anhand seiner IP-Adresse einen passenden Domänencontroller zu finden. Aus diesem Grund kann es erforderlich sein, einen bestimmten Domänencontroller/Hostnamen für die Kommunikation mit Tableau Server zu konfigurieren. Gehen Sie dazu wie folgt vor:

  1. Bestimmen Sie, welchen Domänencontroller Tableau Server verwenden soll, und rufen Sie den Hostnamen ab.
  2. Legen Sie den Konfigurationsschlüssel wgserver.domain.ldap.hostname über die standardmäßigen Administratorkonfigurationsoptionen von Tableau Server auf den Hostnamen fest:

    • Legen Sie den Wert in der JSON-Konfigurationsdatei CONFIG_FILE fest.
    • Verwenden Sie den TSM-Konfigurationsbefehl

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

Importieren eines AD-Zertifikats in den Tableau Server-Schlüsselspeicher

Standardmäßig kommuniziert Tableau Server in einem Container mit AD über StartTLS, wenn die einfache Bindung verwendet wird. Wenn der Container also in dieser Konfiguration ausgeführt wird, muss das AD-Serverzertifikat in den Tableau Server-Schlüsselspeicher importiert werden, da sonst die Serverinitialisierung fehlschlägt. Gehen Sie dazu wie folgt vor:

  1. Erstellen Sie ein Skript pre-init-command (siehe Abschnitt "Vorinitialisierungsskript"). Fügen Sie die folgende Zeile hinzu, um das AD-Zertifikat zum Tableau Server-Schlüsselspeicher hinzuzufügen.

    ${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. Binden Sie das AD-Serverzertifikat in den Dateipfad ein, der für den Parameter -file im Skript pre-init-command angegeben ist.

Alternativ kann die Standardeinstellung zur Kommunikation mit AD über StartTLS deaktiviert werden. Legen Sie wgserver.domain.ldap.starttls.enabled auf false fest, um StartTLS zu deaktivieren. Dies wird jedoch nicht empfohlen.

Beispiele für Bereitstellungskonfigurationen

Docker

Grundlegende Verwendung von Tableau Server in einem Container
docker run \
-e LICENSE_KEY=<key>
-p 8080:8080
-d <Tableau Server in a Container image ID or tag>
Grundlegende Verwendung von Tableau Server in einem Container mit automatisiertem ursprünglichem Administratorbenutzer
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>
Nur TSM-Modus
docker run \
-e TSM_ONLY=1 \
-p 8080:8080 -d <Tableau Server in a Container image ID or tag>
Grundlegende Verwendung mehrerer Knotenpunkte
Anfangsknoten

Option 1: Verwenden Sie Folgendes, wenn die Serverkonfiguration (CONFIG_FILE) eine Topologie mit mehreren Knoten vorgibt:

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>

Option 2: Verwenden Sie Folgendes, wenn Sie eine Bereitstellung mit mehreren Knoten wünschen, auch wenn die Serverkonfiguration keine Topologie mit mehreren Knoten vorgibt:

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>
Weiterer Knoten
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>
Externalisieren der Datennutzung
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>
Grundlegende Verwendung des Init-Containers

Init-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>

Ausführen des Containers

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>
Grundlegendes Wiederherstellen aus einer Einzelknotensicherung
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>

 

 

Vielen Dank für Ihr Feedback!Ihr Feedback wurde erfolgreich übermittelt. Vielen Dank.