容器中的 Tableau Server - 使用映像

簡介

容器中的 Tableau Server 是 Tableau 的第一款容器型伺服器產品。「容器」中的 Tableau Server 是一種在 Linux Docker 容器內執行的多合一 Tableau Server 執行個體。換句話說,容器中的 Tableau Server 映像是指執行整個自封式 Tableau Server 應用程式的 Docker 映像。容器中的 Tableau Server 是我們支援在容器型環境中執行 Tableau Server 的眾多步驟中的第一步。要理解容器中的 Tableau Server 概念,最簡單的方法是將其視為已預先安裝 Tableau Server 的虛擬機器 (VM)。該映像基於 UBI 8 映像(適用於版本 2022.1 及更早版本的 CentOS 7.x),並在容器內執行 supervisord(而不是 systemd)。容器啟動 supervisord 時,其將立即嘗試初始化及啟動 Tableau Server。此處的大部分文件旨在描述如何提供設定和善用自動化作業,以便您可以在 Docker 環境中執行 Tableau Server。

容器中的 Tableau Server 映像設定工具可協助您建立和自訂容器映像,以包含自訂套件和成品。該工具的主要功能之一是組建容器映像,並安裝自訂資料連接器。

要在概念證明情境中快速測試容器中的 Tableau Server 映像,請參閱容器中的 Tableau Server - 快速入門

容器中的 Tableau Server 限制

  • 容器中的 Tableau Server 僅支援使用伺服器 ATR 啟用授權。2023.1 及更高版本支援使用伺服器 ATR 進行離線啟用。此功能在容器中可用,但需要額外的步驟和核准。若您需要在實體隔離斷網或離線環境中執行容器中的 Tableau Server,請聯絡您的客戶代表以取得更多資訊。
  • 容器中的 Tableau Server 目前不支援 Resource Monitoring Tool (RMT) 代理程式。
  • 容器中的 Tableau Server 不支援 Kerberos。

容器中的 Tableau Server 映像

容器中的 Tableau Server 映像是包含所有 Tableau Server 的 Docker 映像。該映像使用容器中的 Tableau Server 設定工具組建而成。組建時,該映像包括 Tableau Server,但尚未初始化。容器中的 Tableau Server 映像中的預設使用者為非根目錄無權限使用者。

必要條件

執行 configure-container-host 指令碼

如果按照 Tableau Server 時不包含容器,某些資源限制與 coredump 屬性會作為安裝過程的一部分進行变更。這是為了幫助最佳化 Tableau Server 的效能。容器中的 Tableau Server 映像 無法在主機上進行這些变更,因此我們建議在要執行容器中的 Tableau Server 映像的任何電腦上執行容器中的 Tableau Server 設定工具中提供的 configure-container-host 指令碼。這將有助於確保容器中的 Tableau Server 映像的效能與其裸機對應物相當。

要執行 configure-container-host 指令碼:

  1. 在容器中的 Tableau Server 設定工具的最上層目錄中找到指令碼(configure-container-host)。
  2. 將其複製到計劃執行 Tableau Server 的環境中。

  3. 確定將作為容器中的 Tableau Server 映像的預設使用者執行的無權限使用者帳戶/uid。此使用者應存在於主機上,並且應與 Tableau Server 容器 UNPRIVILEGED_TABLEAU_UID 環境變數中設定的 UID 相符。若在建立 Docker 映像時未設定此項,則容器內的預設無權限使用者 ID 為 999。若使用 Docker 使用者對應,則此 UID 應與主機上存在的使用者相對應。

  4. 以根目錄身分執行指令碼:

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

執行映像

若要執行容器中的 Tableau Server docker 映像,執行容器中的 Tableau Server 映像的最簡單命令如下:

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

這將在背景執行 docker,一段時間後,將產生完全安裝的 Tableau Server 執行個體。Tableau Server 可能需要 10 到 20 分鐘才能完全啟動,具體取決於執行映像的電腦硬體。您可以輸入 docker ps 命令驗證容器是否正在執行。Tableau Server 執行後,需要建立初始 Tableau Server 管理員帳戶。這一步可以自動化。有關詳情,請參閱自動化初始 Tableau Server 管理員

基本執行引數摘要

Docker run 命令中使用的所有選項都是必需的,通常會提供更多選項以利用映像中的不同功能。現在,讓我們仔細查看容器中的 Tableau Server 最簡單的 Docker run 命令中使用的引數:

引數說明
-e LICENSE_KEY=<key>Tableau Server 必須獲得授權。此環境變數會存儲將用於授權伺服器的金鑰。這是初始化程序的要素。可以提供以逗號分隔的多項授權。
-p 8080:8080這會通知 docker 在容器中公開連接埠 8080,並將其繫結至主機上的連接埠 8080。第一個 8080 值是可設定的,变更此值將修改對應到主機上的連接埠。預設情況下,Tableau Server 預期會在容器內的連接埠 8080 上接收使用者流量,您可以選擇是在不同的主機連接埠上公開此連接埠,還是根本不公開。

 

自動化初始 Tableau Server 管理員

Tableau Server 初次啟動時,必須先建立初始管理員使用者,然後才能使用遠端網路連線至 Tableau Server。這可以藉由在容器中執行 tabcmd initialuser -s localhost:8080 -u <username> -p <password> 命令來完成。還可以透過環境變數設定管理員認證。TABLEAU_USERNAMETABLEAU_PASSWORDTABLEAU_PASSWORD_FILE(慣用)都是環境變數,可以設定為在初始管理員認證中傳遞。有關密碼管理的更多資訊,請參閱密碼管理

有關 tabcmd initialuser 命令的更多資訊,請參閱 initialuser

範例

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>

授權

容器中的授權

容器中的 Tableau Server 的授權使用伺服器執行授權 (ATR) 服務來啟用部署在雲端、容器或虛擬環境中的 Tableau Server,而不會用盡授權啟用次數。ATR 服務透過提供可設定持續時間(ATR 持續時間)的短期租約來實現此功能,直到產品金鑰到期。ATR 可從基礎硬體變更中擷取 Tableau 授權,這是容器部署的一個基本方面。由於伺服器 ATR 要求容器能夠存取 Tableau 託管的 ATR 服務,因此容器需要網際網路存取權限。容器中的 Tableau Server 不支援離線或手動啟用。有關更多詳細資訊,請參閱使用執行授權 (ATR) 服務啟用 Tableau Server

重要提示:必須提供LICENSE_KEYLICENSE_KEY_FILE 環境變數(僅設定一個)。

在容器中升級 Tableau Server 時,若已使用授權的最大啟用次數,則 Tableau Server 在 ATR 持續時間(預設為 4 小時/14400 秒)結束之前無法啟動。有關設定或者變更 ATR 服務的詳細資訊,請參閱使用執行授權 (ATR) 服務啟用 Tableau Server(連結在新視窗開啟)

授權環境變數

容器中的 Tableau Server 支援使用環境變數設定授權金鑰:LICENSE_KEY 可以使用逗號分隔清單包含一個或多個金鑰(-e LICENSE_KEY="<key1> , <key2>")。

範例

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

授權檔案

容器中的 Tableau Server 還支援使用檔案設定授權金鑰。將檔案掛載至容器 (/docker/config/license_file) 中的預設授權金鑰檔案位置,或者將其按照環境變數 LICENSE_KEY_FILE 所指定的位置掛載。

範例

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>

請求的授權租約時間

可以透過設定環境變數 REQUESTED_LEASE_TIME 在 Tableau Server 容器中指定 ATR 授權租約時間。必須提供以秒為單位的租約時間,最短持續時間為 3600 秒(或 1 小時)。建議在試驗和測試 Tableau Server 時降低租約時間,以減少達到最大啟用租約限制的可能性。對於生產部署,強烈建議不要設定 REQUESTED_LEASE_TIME 參數(因此使用預設值),以便 Tableau 可以確定理想的租約時間。

範例

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

執行未初始化的映像

Tableau Server 採用兩階段安裝,首先安裝 Tableau 服務管理員 (TSM) 服務。在典型的內部安裝中,此步驟是伺服器管理員註冊其伺服器、啟用其授權以及設定伺服器以按其要求的方式執行的時機。安裝的第二階段是設定和啟動 Tableau Server 流程,這會處理終端使用者流量和相關的業務邏輯。

容器中的 Tableau Server 映像的預設行為是自動執行所有安裝步驟,以便 docker run 命令最終產生功能齊全的伺服器。然而,若要啟動容器中的 Tableau Server 映像,並且僅讓它執行 TSM 服務(若伺服器管理員剛執行 initialize-tsm,也只能如此),則可以透過將 TSM_ONLY 標幟以環境變數的形式進行傳遞來完成此動作。

例如:

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

與映像進行互動

執行容器中的 Tableau Server 映像時,可以直接叫用 TSM 和 tabcmd 命令。這些工具將直接新增至 pid 1 使用者的環境路徑(此時是根目錄)。這意味著可以按如下方式叫用 TSM 和 tabcmd 命令:

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

還可以在容器中開啟 shell 以執行更多一般作業。除非用於偵錯目的,否則通常建議您不要如此操作:

docker exec -it <container> bash

TSM Web UI 和遠端 CLI

預設情況下無法存取 TSM Web UI 和遠端 CLI。這是因為存取需要使用者名稱和密碼進行驗證,而且根據預設,在容器中執行 tableau 伺服器程序的使用者不會取得密碼。這種作法是出於安全考量(我們不建議傳輸內置預設密碼的映像,因為這會允許遠端存取)。在某些情況下,TSM Web UI 和使用 TSM CLI 進行遠端存取叫用可能很有用。若想使用這些功能,需要按照下方概述的步驟建立遠端存取使用者帳戶。

有關 TSM Web UI 和 CLI 的更多詳細資訊,請參閱登入到 Tableau 服務管理員 Web UI

建立 TSM 遠端使用者

使用設定工具組建容器中的 Tableau Server 映像時,指定 TSM_REMOTE_UIDTSM_REMOTE_USERNAME。在映像中建立已啟用 TSM 的帳戶時,需要映像中的特殊權限存取(但在執行階段不可用),因此只可在容器中的 Tableau Server 設定工具 (build-image) 組建 Docker 映像時建立該帳戶。

容器中的 Tableau Server 設定工具 environment 檔案範例:

TSM_REMOTE_UID=1010
TSM_REMOTE_USERNAME=myuser

為 TSM 遠端使用者設定密碼

容器中的 Tableau Server 映像 在執行映像時需要帳戶密碼。可以透過兩種方式為帳戶設定密碼。

密碼檔(建議)

建立名為 remote-user-secret 的檔案,將密碼寫入該檔案,並在執行階段將其掛載到容器中。TSM_REMOTE_PASSWORD_FILE 會確定容器中密码檔案的預期位置(預設位置為/docker/config/remote-user-secret)。

remote-user-secret 檔案範例:

mypassword

docker run 命令範例:

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>
環境變數

還可以在啟動 docker 映像時簡單地設定 TSM_REMOTE_PASSWORD 環境變數。

docker run 命令範例:

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>

安全性提示

  • 必須公開連接埠 8850 才能接收 TSM 請求流量。
  • 若執行階段映像中的密碼設定不正確,容器將立即結束。
  • TSM 依賴於映像的 Linux 使用者帳戶系統。在這種情況下,帳戶在映像內是受限的。這意味著該帳戶將具有受限的 shell,並且僅限於執行兩個命令:/bin/truepasswd

如何變換 TSM 遠端使用者的密碼

若要變換 TSM 遠端使用者的帳戶密碼,可以使用以下任一選項執行此動作:

啟動新的容器中的 Tableau Server

每次容器啟動時都會設定帳戶的密碼。若將 Tableau 資料保留在容器外,則使用新密碼啟動新映像將有效地變換密碼。

  1. 關閉並移除正在執行的映像
  2. 在映像設定中的任一 TSM_REMOTE_PASSWORDTSM_REMOTE_PASSWORD_FILE 環境變數(見上文)中設定新密碼值。
  3. 再次啟動映像。
在正在執行的容器內手動變換密碼

若不想關閉映像,仍然可以手動變換密碼。

  1. 在正在執行的容器中開啟 shell
  2. 使用 su 命令以遠端使用者帳戶身分登入
  3. 執行 passwd 命令以變更密碼。

    警告:這些手動變換僅在容器執行個體的寫入層保留時才會持續存在。若刪除容器,則在啟動新容器時不會套用手動变更。

 

初始設定選項

設定容器中的 Tableau Server 對取得所需的 Tableau Server 行為至關重要。容器中的 Tableau Server 是 全新安裝的 Tableau Server,因此您需要向容器提供與在容器外設定 Tableau Server 時相同的資訊。

執行階段環境變數

下方的執行階段環境變數會告知容器中的 Tableau Server 映像 如何部署 Tableau Server。我們會對這些變數的子集進行更詳細的描述。

所有值都可進行覆寫,以便為設定提供更大的靈活性。

環境名稱預設值說明
ACCEPTEULA0使用容器中的 Tableau Server 設定工具組建映像時會自動設定為 1。
LICENSE_KEY 設定至將用於授權伺服器的授權金鑰。接受以逗號分隔的多個授權。
LICENSE_KEY_FILE/docker/config/license_file 授權檔案的檔案路徑。授權檔案的格式應為每行一個授權金鑰。
REGISTRATION_FILE/docker/config/tableau_reg.json映像內登錄檔案的檔案路徑。預設情況下,這包含在組建容器中的 Tableau Server 映像時提供的登錄資訊。可以在執行階段進行覆寫。有關詳情,請參閱啟用並註冊 Tableau Server
REGISTRATION_DATA 在執行階段覆寫登錄資訊的另一種方法。此環境變數必須設定為序列化的 JSON 字串,其中包含與 Tableau Server 登錄檔案中相同的登錄資訊。有關詳情,請參閱啟用並註冊 Tableau Server
TABLEAU_USERNAME 這是指 Tableau Server 的初始管理員帳戶。建議選項,但為可選。若未設定此使用者,則需要使用 tabcmd 設定 Tableau Server 的初始管理員帳戶。若此變數設定為某個值,則還需要密碼。只有首次初始化 Tableau Server 時,才會使用此選項。設定此值將告知容器中的 Tableau Server 自動嘗試初始化使用者。有關詳細資訊,請參閱新增管理員帳戶
TABLEAU_PASSWORD tableau 使用者的純文字密碼。這是指 Tableau Server 的初始管理員帳戶。若已指定 TABLEAU_USERNAME,此為必要選項。。有關詳細資訊,請參閱新增管理員帳戶
TABLEAU_PASSWORD_FILE 檔案路徑,僅包含 tableau 使用者的密碼文字。這是指 Tableau Server 的初始管理員帳戶。若已指定 TABLEAU_USERNAME,此為必要選項。。有關詳細資訊,請參閱新增管理員帳戶
CONFIG_FILE/docker/config/config.json

預設 TSM 組態檔的檔案路徑。該檔案將用於設定 Tableau Server。有關詳情,請參閱組態檔範例

若已使用 CONFIG_FILE,則請勿設定 CONFIG_DATA

CONFIG_DATA 這可以用於替代 CONFIG_FILE。若要在不掛載外部檔案的情況下向伺服器提供設定,請將此環境變數設定為 TSM 組態檔的等效序列化內容。

範例 CONFIG_DATA="{\"configEntities\":{\"identityStore\":{\"_type\":\"identityStoreType\",\"type\":\"local\"}}}" 有關詳情,請參閱組態檔範例

若已使用 CONFIG_DATA,則請勿設定 CONFIG_FILE

IGNORE_TOPOLOGY_CONFIG00 或 1。若設定為 1,容器將忽略 CONFIG_FILE 指定的組態檔中存在的任何拓撲相關設定。
BACKUP_FILE/docker/config/backup/backup-file.tsbakTableau Server 備份檔案 (.tsbak) 的檔案路徑。若在初始化期間提供,伺服器將嘗試還原。
INIT_CONTAINER00 或 1。若設定為 1,Tableau Server 將僅嘗試初始化 TSM 和初始化 Tableau Server,並且容器將在完成後結束。
TSM_ONLY00 或 1。相當於安裝 Tableau Server rpm 並執行 initialize-tsm。只有 TSM (Tableau 服務管理員) 服務才會啟動。只有容器首次初始化時才有作用(若使用先前初始化的伺服器目錄啟動容器中的 Tableau Server,則此功能將不起作用)。
BOOTSTRAP_INSTALL00 或 1。表示伺服器是初始節點,還是附加節點。若設定為 1,容器將無限期等待,直到 $BOOTSTRAP_FILE 指定的位置存在啟動程序檔案
ALWAYS_WRITE_BOOTSTRAP_FILE0 0 或 1。如果設定為 1,容器會將啟動程序檔案寫入至 BOOTSTRAP_FILE 中指定的位置。
WAIT_FOR_BOOTSTRAP_FILE10 或 1。若設定為 1(預設),若容器偵測到其為背景工作安裝 (BOOTSTRAP_INSTALL=1)。容器將無限期等待,直到偵測到檔案位於 BOOTSTRAP_FILE 中設定的路徑。若在執行啟動流程時設定為 0,則將跳過此等待。這在某些偵錯情況下很有用。
BOOTSTRAP_FILE/docker/config/bootstrap/bootstrap.json啟動程序檔案的檔案路徑。僅適用於工作容器。此檔應僅指向啟動程序檔案。典型的使用方式是將目標檔案的目錄(預設為 /docker/config/bootstrap)掛載至主機。
BOOTSTRAP_DATA這可以用於替代 BOOTSTRAP_FILE。若要在不掛載外部檔案的情況下提供啟動程序檔案,請將此環境變數設定為 TSM 啟動程序檔案的等效序列化內容。若使用 BOOTSTRAP_FILE,則請勿設定 BOOTSTRAP_DATA。
PORT_RANGE_MIN8800 出於效能原因,我們建議僅公開 200 個連接埠 (8800-9000),而不是 Tableau Server 內部部署預設的 8000-9000 連接埠範圍,因為在 docker 中公開 1000 個連接埠可能會對 docker 映像的啟動時間產生負面影響。有關詳細資訊,請參閱下方的公開授權與 TSM 連接埠
PORT_RANGE_MAX9000我們建議僅公開 200 個連接埠 (8800-9000),而不是 Tableau Server 內部部署預設的 8000-9000 連接埠範圍,因為在 docker 中公開 1000 個連接埠可能會對 docker 映像的啟動時間產生負面影響。有關詳細資訊,請參閱下方的公開授權與 TSM 連接埠
HTTP_PROXY 若要將 http 請求轉送至 Proxy 伺服器,請設定此環境變數以指向 Proxy 主機。例如,若要針對連接埠 8080 將 Proxy 設定為 example-host,請執行:HTTP_PROXY=http://example-host:8080/
HTTPS_PROXY 若要將 https 請求轉送至 Proxy 伺服器,請設定此環境變數以指向 Proxy 主機。例如,若要針對連接埠 443 將 Proxy 設定為 example-host,請執行:HTTPS_PROXY=http://example-host:443/ HTTPS_PROXY 環境變數指定 URL 時,請務必使用「http」。
NO_PROXY 若要略過 Proxy 伺服器,請在 no_proxy 變數中指定例外狀況。如果 Proxy 伺服器未路由傳送內部地址,則請使用此變數。您必須同時向此 Proxy 設定中新增例外來保證本機 Tableau Server 叢集(如果目前有該叢集或稍後將有該叢集)內的所有通訊不會路由到 Proxy 伺服器。輸入每台電腦的主機名稱和 IP 位址,並新增容器的主機名稱。此外,還包括本機電腦的規範主機名稱 (localhost) 和 IP 位址 (127.0.0.1)。例如,若要指定三節點叢集的例外狀況: NO_PROXY="localhost,127.0.0.1,hostname1,hostname2,hostname3,IP1,IP2,IP3"
COORDINATION_SERVICE_CLIENT_PORTPORT_RANGE_MINPORT_RANGE_MAX 之間的任何連接埠用於協調服務的用戶端連接埠。
COORDINATION_SERVICE_PEER_PORTPORT_RANGE_MINPORT_RANGE_MAX 之間的任何連接埠用於協調服務的對等連接埠。
COORDINATION_SERVICE_LEADER_PORTPORT_RANGE_MINPORT_RANGE_MAX 之間的任何連接埠協調服務的負責人連接埠。
LICENSE_SERVICE_VENDOR_DAEMON_PORTPORT_RANGE_MIN PORT_RANGE_MAX 之間的任何連接埠授權服務的供應商精靈連接埠。
AGENT_FILE_TRANSFER_PORTPORT_RANGE_MINPORT_RANGE_MAX 之間的任何連接埠代理程式服務的檔案傳輸連接埠。
CONTROLLER_PORTPORT_RANGE_MINPORT_RANGE_MAX 之間的任何連接埠用於控制項目服務的 https 連接埠。
REQUESTED_LEASE_TIME預設設定為 4 小時。為伺服器 ATR 啟用設定請求的租約時間。需要提供以秒為單位的時間值,最短持續時間為 14400 秒(或 4 小時)。對於生產部署,通常不建議变更此值。但是,使用容器中的 Tableau Server 進行開發或原型設計時,可能希望將其設定為最小值,以最大程度地減少啟用消耗次數。

唯讀環境變數

這些是描述容器中的 Tableau Server 映像的一些基本屬性的環境屬性。建議不要覆寫這些值。

環境名稱預設值說明
PRE_INIT_COMMAND_SCRIPT${DOCKER_CONFIG}/customer-files/pre_init_commandTableau Server 初始化之前,要在 Tableau Server 中執行的使用者自訂 bash/可執行檔案的路徑。附註:確保檔案對所有使用者都有執行權限,否則會執行chmod +rx <path-to-pre-init-command-file>
POST_INIT_COMMAND_SCRIPT${DOCKER_CONFIG}/customer-files/post_init_command伺服器功能齊全並正在執行後,要在 Tableau Server 中執行的使用者自訂 bash/可執行檔案的路徑。附註:確保檔案對所有使用者都有執行權限,否則會執行chmod +rx <path-to-post-init-command-file>
DATA_DIR/var/opt/tableau/tableau_server應寫入 Tableau Server 位元的資料目錄。
INSTALL_DIR/opt/tableau/tableau_server寫入 Tableau Server 安裝位元的安裝目錄。
SERVICE_NAMETableau Server在容器中執行的應用程式的名稱。
SERVICE_VERSION不適用容器中安裝的 Tableau Server 的版本。
DOCKER_CONFIG/docker儲存 Tableau 特定 docker 設定的目錄。
ENV_FILE${DOCKER_CONFIG}/customer-files/environment包含所有使用者環境覆寫的檔案。

組建時間環境變數

   
BASE_IMAGE_URL使用組建工具命令:build-image -bbuild-image 工具和 Dockerfile 中指定的預設映像是唯一官方支援的基礎映像。此參數可用於從自訂 docker 映像存放庫中擷取此特定基礎映像的複本或定義自訂基礎映像。若您選擇使用自訂基礎映像,則您有責任確保其基於 UBI 8(適用於版本 2022.1 及更早版本的 CentOS 或 RHEL 7),並包含正確執行 Tableau Server 所需的資源。有關自訂基礎映像的更多資訊,請參閱容器中的 Tableau Server - 使用映像
PRIVILEGED_TABLEAU_GID997 取得權限之 Tableau 群組的 GID。
UNPRIVILEGED_TABLEAU_GID998 未取得權限之 Tableau 群組的 GID。
UNPRIVILEGED_TABLEAU_UID999 執行 Tableau 流程的使用者的 UID(單一使用者部署)。
UNPRIVILEGED_USERNAMEtableau 未取得權限之使用者的字串名稱。
UNPRIVILEGED_GROUP_NAMEtableau 未取得權限之群組的字串名稱。
PRIVILEGED_GROUP_NAMEtsmadmin 取得權限之群組的字串名稱。
LANGen_US.UTF-8地區設定

 

Tableau Server 設定覆寫

這些環境變數可以藉由 Docker 加以覆寫,以指向容器中的任何檔案。因此,如果要指定不同的裝載點,您可以安心地這樣操作。

Tableau Server 需要組態檔來啟動和執行:

CONFIG_FILE=/docker/config/config.json

CONFIG_FILE 指的是 TSM 組態檔。格式和使用方式與組態檔範例中描述的組態檔相同。

預初始化和後初始化命令

Tableau Server 會執行自動安裝指令碼,旨在將 Server 從預初始化狀態轉變為完全執行。但是,有時您可能希望在初始化流程中新增自己的自動化程式碼。我們可提供兩種勾點來完成此動作,即預初始化指令碼和後初始化指令碼。

預初始化指令碼

此指令碼將在基本 TSM 流程初始化之後和執行任何其他 TSM 設定步驟之前立即執行。這對於在 Tableau Server 執行之前執行 TSM 設定命令很有用。對於此時所做的設定变更,不需要套用变更,因為標準 Tableau Server 自動化會在指令碼完成後執行此動作。

後初始化指令碼

此指令碼將在所有其他 Tableau Server 初始化和啟動自動化完成後執行。此指令碼執行時,Tableau Server 將功能齊全並執行。必須套用此時所做的設定变更。

說明

要將自訂指令碼新增到映像中的其中一個勾點,請遵循下列步驟:

  1. 編寫自訂指令碼
  2. 將自訂指令碼複製到容器中的 Tableau Server 組建映像工具的 customer-files 目錄中。
  3. 將指令碼重新命名為 pre_init_commandpost_init_command,具體取決於您希望指令碼何時執行(這兩種勾點可獨立使用)。
  4. 確保指令碼的權限可由其他人執行 (chmod +rx <command-file> ) 或擁有權權限與容器中的無權限使用者相符。

使用者組態

Tableau Server 使用無權限使用者執行伺服器流程。此使用者是在容器中的 Tableau Server 初始化時在容器內建立的。預設情況下,使用者名稱為 tableau ,UID 為 999。若要部署裝載在主機電腦上外部儲存資料的容器中的 Tableau Server,則您可能希望變更 UID 以便對應至主機電腦上的 UID。使用 docker 使用者命名空間是取得相同結果的另一種方法。

容器中的 Tableau Server 公用程式和工具

所有容器中的 Tableau Server 公用程式和工具功能都置於此目錄下:

/docker/

檔案權限管理

將任何組態檔傳遞到容器時,您務必確保在容器內執行 Tableau Server 程序的使用者具有存取檔案的權限。為了避免授予所有使用者對掛載至容器的檔案存取權限,您可以變更在容器內執行 Tableau Server 之使用者的 UID 和/或 GID,以符合主機上的使用者/群組擁有者。容器使用者將擁有按照 UNPRIVILEGED_TABLEAU_UID 環境變數(預設值:999)和 GID UNPRIVILEGED_TABLEAU_GID(預設值:998)判別的 UID。藉由覆寫環境變數即可變更這些值,也可以使用 Docker 使用者命名步調將容器中相關的 UID/GID 對應至主機上的不同 UID/GID。

密碼管理

某些功能和選項要求提供使用者認證做為容器中的組態設定。Tableau 初始管理員認證是啟用其他功能的可選認證範例。在此等情況下,我們始終提供兩種設定密碼的方法。第一,您可以提供包含密碼的檔案,並隨附取得環境變數的檔案路徑。或者,您可以設定環境變數,以直接儲存密碼。

建議且更安全的選項是提供密碼作為容器的檔案路徑。在檔案中提供密碼是 Docker、Docker Swarm、Kubernetes 和其他容器協調系統中一個受到良好支援的模式。直接在環境變數中儲存密碼是一種常見的模式,因此我們確實支援這種模式,但這通常意味著密碼的安全性較低。

範例

讓我們來檢視 TABLEAU_USERNAME 認證。您可以採用以下方式為使用者提供密碼:TABLEAU_PASSWORDTABLEAU_PASSWORD_FILE。執行容器中的 Tableau Server 映像時,可以提供任一環境變數來提供密碼。

密碼檔環境變數需要容器內的檔案至有效密碼檔的路徑。密碼檔應為包含密碼的一行內容。

使用密碼檔的範例
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>
密碼檔的範例內容
mypassword23879172

或者,可以直接將密碼以純文字形式儲存在密碼環境變數中。此方法一般認為安全性欠佳,不過較為方便,是一種採用容器的常見方法。

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

在執行後設定 Tableau Server

Tableau Server 初始化並執行後,與伺服器互動的最佳方式是使用 TSM CLI 工具。這是用於執行管理任務的傳統 Tableau Server 工具。將來,我們將支援 Tableau Server 在執行之間對 CONFIG_FILE 環境變數中提供的靜態設定中的变更做出反應。但就目前而言,在 Tableau Server 初始化之後,必須使用傳統工具與伺服器進行互動。

有關 TSM 命令列的更多資訊,請參閱 tsm 命令列參考

狀態

映像中提供了兩種針對 Tableau Server 的基本狀態檢查。這些可用於檢查伺服器的活動性和就緒情況。

活動性檢查

活動性檢查可指示 TSM 服務是否正在執行。這表示檢查將指示 Tableau Server 的協調服務是否正在運作,而且功能正常。此檢查可在此處叫用:

/docker/alive-check

另一個選項是公開 Tableau Controller 服務執行的連接埠 8850,以便透過 Web 瀏覽器提供管理功能。您可以藉由透過 tcp 健康情況檢查的方式,定期檢查服務的健康情況。

就緒檢查

就緒檢查會指示 Tableau Server 是否正在執行,以及業務服務是否已準備好接收流量。這可運用下列指令碼加以判別:

/docker/server-ready-check

另一個選項是針對連接埠 8080(或 Tableau Server 所繫結之接收流量的任何連接埠)使用 tcp 執行狀況檢查。有時,這種 tcp 執行狀況檢查比伺服器就緒檢查更為可靠;因為伺服器就緒檢查是以向 TSM 回報的服務狀態為基礎,而此回報的服務狀態,有時會在服務狀態更新時有所延遲。

持續性資料

通常,使用容器時,我們希望能夠在不丟失任何重要資訊的情況下關閉容器,然後重新開啟該容器。容器中的 Tableau Server 映像支援此功能,因為您可以在容器外部裝載某些目錄,以便可以完整銷毀或移除容器執行個體,並且仍然保留資料。此資料可用於啟動另一個容器執行個體,並在容器先前關閉的位置繼續執行。

以下部分會介紹不同類型的託管狀態。

Tableau Server 資料

伺服器資料全部儲存在資料目錄中。資料目錄是存儲所有使用者相關資料和服務執行階段中繼資料的位置。資料外部化表示即使完全移除容器中的 Tableau Server,使用者的資料仍然可以保留。

此資料是可傳輸的,並且可用於雲端管理的區塊存放裝置系統,例如 AWS EBS 磁碟區。

容器中的 Tableau Server 與外部檔案存放區結合使用時,資料目錄必須位於 EBS 上。切勿將網路檔案系統(例如 NFS)用於資料目錄。外部檔案存放區目錄可以位於 NFS 磁碟區上。

靜態主機名稱

Tableau Server 無法處理動態主機名稱變更,因此指定容器的內部主機名稱非常重要,如此主機名稱在容器執行之間才能保持一致。容器內的主機名稱屬於任意命名,因此可以設定為任何值。使用 --hostname 選項允許指定容器的內部主機名稱。確保使用相同持續性資料的後續容器,以相同的主機名稱值執行。

切勿與多節點伺服器安裝混淆。在這些主機名稱中,每個附加節點都應該指派一個不同的主機名稱。重要的是,重新啟動任何單一容器時,將為該執行個體使用相同持續性資料的取代容器必須具有相符的主機名稱。

完整範例

這是一個範例,其中資料目錄掛接在容器外部。

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>

備份與還原

容器中的 Tableau Server 支援 Tableau Server 建立備份和從備份檔案 (.tsbak) 還原。第一步是執行容器中的 Tableau Server 映像,將備份檔案 (.tsbak) 掛載在映像中,然後連同備份檔案的檔案路徑一起設定環境變數 BACKUP_FILE。此外,必須在 CONFIG_FILE 環境變數中提供備份 json 組態檔。即使對於多節點部署,Tableau Server 容器也會自動執行還原流程。若此自動化在任何時候無法完全還原系統,您始終可以使用傳統 Tableau Server 工具和流程(例如 TSM 命令)以與非容器部署相同的方式與 Tableau Server 互動。

有關如何執行備份以及還原標準 Tableau Server 執行個體的詳情,請參閱執行 Tableau Server 的完整備份和還原

Tableau Server 容器中的備份

  1. 在容器中的 Tableau Server 版本 A 中開啟 shell。建立存放庫備份以及拓撲和設定備份檔案。

    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. 將上一步建立的檔案複製到主機中。將檔案權限变更為已對兩個檔案設定「讀取所有」權限。

    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. 將備份成品儲存在安全的位置。需要時,請按照以下還原步驟進行操作。

在 Tableau Server 容器內還原

任何受支援的 Tableau Server 版本(容器和非容器)的備份都可以在 Tableau Server 容器內進行還原。

必要條件
  • Tableau Server 備份檔案。
  • 包含設定和拓撲資訊的設定 json 檔案。
  • 附註:可能需要變更備份檔案才能設定「讀取所有」權限。備份檔案通常會鎖定至建立該檔案的使用者,該使用者可能與在容器中執行的 Tableau 使用者不同。
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>

附註:

  • 若要還原多節點系統,還必須啟動其他節點,以便進行自動化還原。有關詳細資訊,請參閱本文件的容器中的多節點 Tableau Server 部分。只有初始節點需要備份檔案、備份組態檔和授權。
  • 備份檔案只需要在容器第一次執行時提供。伺服器初始化後,無需繼續裝載備份檔案。

 

從 Tableau Server 遷移至容器中的 Tableau Server

為了從標準 Tableau Server 安裝遷移到容器中的 Tableau Server,必須使用備份和還原技術。任何受支援的 Tableau Server 版本(容器和非容器)的備份都可以在 Tableau Server 容器內進行還原。有關詳細資訊,請參閱上方的 在 Tableau Server 容器內還原部分。

升級 Tableau Server 版本

有兩種升級 Tableau Server 的方法。本節中列出的 Upgrade-Image 方法為建議的解決方案。但是,作為後援計劃,也可以使用備份/還原來升級 Tableau Server。

透過 Upgrade-Image 方法升級

升級映像是一個 Docker 映像,可以使用容器中的 Tableau Server 設定工具中的 build-upgrade-image 指令碼進行組建。該映像僅用於升級目前正在執行的容器中的 Tableau Server。

請按照以下步驟進行升級。

  1. 使用 build-upgrade-image 指令碼建立 upgrade-image。組建容器需要新版本的 tableau server rpm。
  2. 關閉目前正在執行 Tableau Server 的容器。
  3. 啟動 upgrade-image,掛載上一步關閉容器中相同的資料目錄。
  4. 升級流程需要一段時間,但會升級 Tableau Server,請查看 Docker 記錄檔,以瞭解升級流程的更新情況。容器將在升級流程後關閉。
  5. 啟動較新版本容器中的新 Tableau Server。掛載前面步驟中相同的目錄。

範例:

假設容器中的 Tableau Server 正在執行 Tableau Server。以下是在此範例中所做的部分假設:

  • 我有寶貴的資料,我不想在升級流程中丟失任何資料。資料目錄需要在容器外保存。
  • 該容器被命名為 my-server。docker 映像被命名為 tableau-server:versionA。
  • my-server 目前使用的伺服器版本是版本 A。
  • 我要升級到的伺服器版本是版本 B。
  1. 取得版本 B 的 tableau server rpm。建立 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. 停止 my-server 容器。

    docker stop my-server -t 120
  3. 啟動新建立的映像 tableau-server-upgrade:versionAB。掛載先前停止的容器中相同的資料目錄。容器開始升級到版本 B。

    docker run --name my-upgrade-server \
    -v <data-dir mount from previous step>:/var/opt/tableau \
    ...
    tableau-server-upgrade:versionAB
  4. 升級完成後,容器將停止。檢查 docker 記錄檔以取得升級流程記錄檔,並確保升級流程成功。還可以檢查 docker 容器的結束程式碼,以確保升級流程成功完成。

    # 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. 停止 my-upgrade-server 容器。開啟容器中的 Tableau Server 的新版本 B 映像,並從停止的 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

透過備份-還原方法升級

按照本文件備份和還原部分中的步驟進行操作。將備份-還原操作变更為升級操作所需的唯一調整是在新版本的 Tableau Server 上還原備份。

容器中的多節點 Tableau Server

容器中的多節點 Tableau Server 是指跨多個節點分佈的 Tableau Server 的單一部署。此內容中的多節點與 Tableau Server 多節點相同,其中某些流程可以在其他節點上執行,以提高容量、計算能力等。這不同於啟動多個單獨的容器中的 Tableau Server,其中每個容器都為具有自己獨特資料的獨立伺服器。

容器中的多節點 Tableau Server 的工作方式與非容器 Tableau Server 多節點安裝非常相似,並使用相同的基礎機制。要大致瞭解如何設定非容器 Tableau Server 多節點安裝,請參閱分散式和高可用性 Tableau Server 安裝

下面是一個範例:

多節點基本使用方式

初始節點

選項 1:若伺服器設定 (CONFIG_FILE) 指定多節點拓撲,請使用此選項:

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>

選項 2:若想要多節點部署,即使伺服器設定未指定多節點拓撲,也可以使用此選項:

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>
額外節點
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>

公開授權與 TSM 連接埠

為了讓背景工作節點與主要執行個體通訊,我們需要開啟其他連接埠。需要在下列連接埠範圍內允許來自主要容器中的 Tableau Server 執行個體上其他節點的流量:

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

注意開啟的連接埠數量:我們建議僅公開 200 個連接埠,即 8800-9000,而不是 Tableau Server 預設的連接埠範圍 8000-9000,因為在 Docker 中公開 1000 個連接埠可能會對 Docker 映像的效能和啟動時間產生負面影響。可以使用更小或更大的連接埠範圍,具體取決於 Tableau Server 拓撲的複雜程度。通常,我們建議公開的連接埠不要低於 100 個,否則您必須承擔叢集中的服務無法與某些服務進行對話的風險。如果指定自己的連接埠範圍,請務必公開連接埠 8850(此連接埠包含在 8800-9000 範圍中,並不顯著)。連接埠範圍是藉由設定 PORT_RANGE_MINPORT_RANGE_MAX 環境變數的方式加以指定的。

其他節點還需要公開服務連接埠範圍 (8800-9000),但不包括授權連接埠範圍。請務必注意,這些連接埠範圍僅允許 Tableau Server 進行程序之間的通訊。除了針對相同多節點叢集執行容器中的 Tableau Server 的電腦以外,這些連接埠不應向使用者或任何其他電腦公開。

這些連接埠規則與 Tableau Server 防火牆說明文件一致。有關詳情,請參閱設定本機防火牆

解析主機名稱

容器中的 Tableau Server 的多個節點需要使用一致的主機名稱執行,因為 Tableau Server 不處理動態主機名稱变更。執行 Tableau Server 多節點時,這些節點將有必要彼此通訊。Tableau Server 節點將嘗試使用多個節點的容器中的 Tableau Server 設定使用的主機名稱彼此通訊。例如,若使用主機名稱「initial」執行初始節點,其他節點將嘗試將流量傳送到名為「initial」的主機。可以透過多種方式設定映像,以將主機名稱解析到其他映像。每個容器中的 /etc/hosts 檔案會將任意容器主機名稱(即「initial」)對應到實際執行另一個容器的 IP 位址。

啟動程序附加節點

作為叢集的一部分執行的初始 Tableau Server 容器會產生一個啟動程序檔案,後續其他節點需要使用該檔案加入叢集。在其他節點登錄到叢集拓撲後,可以開始指派要在這些節點上執行的 Tableau Server 流程。此流程可以完全自動進行。若已提供指定多節點拓撲的 Tableau Server 組態檔(通常透過將組態檔掛載到 CONFIG_FILE 指定的檔案路徑來提供,預設路徑: /docker/config/config.json),則初始節點將自動等到所有其他節點都登錄完畢。登錄後,多節點拓撲將套用於整個叢集。

容器中的 Tableau Server 中的初始節點完全執行 Tableau Server 後,可以讓它為其他節點產生啟動程序檔案:

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

若將 ALWAYS_WRITE_BOOTSTRAP_FILE 的值設定為 1,則會自動為您叫用此命令。

安全注意事項

啟動程序檔案包含允許它與初始節點建立 TSM 工作階段的伺服器密码。這表示,如果惡意使用者取得該檔案,便可以在一段時間內向伺服器傳送 TSM 命令。檔案本身還包含資料,這些資料將可用於解密伺服器組態密碼。此檔案應視為敏感檔案,並且只能由與建立多節點部署直接相關的服務和系統存取。

啟動程序過期

啟動程序具有持續 2 小時的限時工作階段。在該視窗中,附加節點無需向初始節點提供認證即可作為附加節點加入。工作階段過期後可以使用啟動程序,但這表示需要向初始節點提供認證。

傳輸啟動程序檔案

啟動程序檔案需要對背景工作節點的容器中的 Tableau Server 可用,並供其使用。啟動程序檔案需要與您希望作為此部署工作節點的所有其他節點的容器中的 Tableau Server 共用。這可透過許多不同的方式實現。

透過安全網路傳輸檔案

初始節點上的部分自動化工作可能涉及將檔案直接傳送到其他節點。這應該使用一些安全的檔案傳輸用戶端/工具來完成。這在初始節點的整個生命週期內可能會產生多個啟動程序(稍後可能新增更多其他節點)的情況下,可能更有用。

使用網路檔案掛載

在特定部署中由所有容器共用的網路檔案掛載,則是另一個選項。

其他

最終目標是安全地傳輸由單一容器產生的檔案,並將其傳輸至一組特定的其他容器。因此,任何能以安全的方式實現此目標者,都足以滿足需求。

啟動附加節點

要啟動容器中的 Tableau Server 附加節點,只需啟動將 BOOTSTRAP_INSTALL 環境變數設定為 1 的容器即可。

這會告知容器中的 Tableau Server 執行個體進入睡眠狀態,直到啟動程序檔案在環境變數 BOOTSTRAP_FILE 指定的路徑中出現為止(該變數也是可以設定的)。請參閱環境變數表以檢視預設檔案路徑。澄清一下,若在「附加節點模式」中執行容器中的 Tableau Server 映像,該容器將不會啟動 supervisord 或是以 pid 1 形式執行之 bash 指令碼以外的任何其他程序,該指令碼會每 5 秒檢查一次以查看啟動程序是否存在。檔案存在後,容器中的 Tableau Server 將繼續以附加節點形式進行初始化。

設定附加節點

設定附加節點以執行特定拓撲的工作方式與在標準 Tableau Server 部署中的工作方式相同。它還附帶相同的要求,這表示在節點上新增程序可能需要整個叢集範圍的重新啟動。有關詳情,請參閱設定節點

Tableau Server 功能注意事項

某些 Tableau Server 功能在容器中的工作方式有所不同。本節會介紹在容器環境中具有特殊或不同注意事項的特定功能。

Active Directory

設定 AD 網域控制項目

若計劃使用 Active Directory 作為 Tableau Server 網頁和站點的身分存放區,則需要考慮額外的注意事項。在 Linux 環境中執行的 Tableau Server 會透過檢查其 IP 子網路來動態確定要與之通訊的 AD 網域控制項目。可以為容器指派任意 IP 位址,在這種情況下,Tableau Server 不一定能夠使用其 IP 位址來查找合適的網域控制項目。因此,可能需要設定特定的網域控制項目/主機名稱,以便 Tableau Server 與之通訊。為此,請執行以下步驟:

  1. 確定希望 Tableau Server 使用哪個網域控制項目並取得主機名稱。
  2. 使用標準 Tableau Server 管理設定選項將組態金鑰 wgserver.domain.ldap.hostname 設定為主機名稱:

    • 在 json 組態檔 CONFIG_FILE 中設定值。
    • 使用 TSM 設定命令

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

將 AD 憑證匯入 Tableau Server Keystore

預設情況下,只要使用簡單繫結,容器中的 Tableau Server 就會透過 StartTLS 與 AD 通訊。所以在這種設定下執行容器時,需要將AD伺服器憑證匯入 Tableau Server Keystore,否則伺服器初始化會失敗。為此,請執行以下步驟:

  1. 建立 pre-init-command 指令碼(請查看預初始化指令碼部分)。新增下列行,以將 AD 憑證新增到 Tableau Server Keystore。

    ${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. pre-init-command 指令碼中,將 AD 伺服器憑證掛載到為 -file 參數提供的檔案路徑中。

或者,可以停用透過 StartTLS 與 AD 通訊的預設設定。將 wgserver.domain.ldap.starttls.enabled 設定為 false ,以停用 StartTLS。但不建議。

部署設定範例

Docker

容器中的 Tableau Server 基本使用方式
docker run \
-e LICENSE_KEY=<key>
-p 8080:8080
-d <Tableau Server in a Container image ID or tag>
容器中的 Tableau Server 基本使用方式與自動建立初始管理員使用者
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>
僅限 TSM 模式
docker run \
-e TSM_ONLY=1 \
-p 8080:8080 -d <Tableau Server in a Container image ID or tag>
多節點基本使用方式
初始節點

選項 1:若伺服器設定 (CONFIG_FILE) 指定多節點拓撲,請使用此選項:

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>

選項 2:若想要多節點部署,即使伺服器設定未指定多節點拓撲,也可以使用此選項:

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>
額外節點
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>
外部化資料使用方式
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>
Init 容器基本使用方式

Init 容器

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>

執行容器

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>
從備份單一節點進行基本還原
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>

 

 

感謝您的意見反應!已成功提交您的意見回饋。謝謝!