Tableau Server in a Container

概要

Tableau Server in a Container は、Tableau 初のコンテナーベースのサーバー製品です。Tableau Server in a Container は、Linux Docker コンテナ内で実行されるオールインワンの Tableau Server インスタンスです。つまり、Tableau Server in a Container のイメージは、自己完結型の Tableau Server アプリケーション全体を実行する Docker イメージです。Tableau Server in a Container は、コンテナーベースの環境で Tableau Server の実行をサポートする数多くのステップの中の最初のステップとなります。

Tableau Server in a Container の概念は、Tableau Server が事前にインストールされた VM のようなものと考えると、簡単に理解することができます。イメージは UBI 8 イメージ (バージョン 2022.1 以前は CentOS 7) に基づいており、コンテナー内で (systemd ではなく) supervisord を実行します。コンテナーが supervisord を開始すると、直ちに Tableau Server を初期化して起動しようとします。ここにあるドキュメントの多くは、Docker 環境に合わせて Tableau Server を実行できるように、構成を提供して自動化の活用方法を説明するためのものです。

Tableau Server in a Container のイメージのセットアップ ツールを使用すると、カスタム パッケージとアーティファクトを含むようにコンテナー イメージを作成してカスタマイズすることができます。このツールの主な機能の 1 つは、コンテナー イメージを構築し、カスタム データ コネクタをインストールすることです。

Tableau Server in a Container に関する制限事項

  • Tableau Server in a Container では、サーバー ATR を使用したライセンス認証のみをサポートします。Server ATR を使用したオフライン アクティベーションは、2023.1 以降でサポートされています。この機能はコンテナで利用できますが、追加の手順と承認が必要です。エアギャップ環境またはオフライン環境のコンテナで Tableau Server を実行する必要がある場合、詳細についてはアカウント担当者にお問い合わせください。
  • Tableau Server in a Container では現在、Resource Monitoring Tool (RMT) エージェントはサポートされていません。
  • Kerberos は、Tableau Server in a Container ではサポートされていません。

概念実証シナリオで Tableau Server in a Container のイメージをすばやくテストするには、Tableau Server in a Container のクイック スタートを参照してください。

Tableau Server in a Container の基本的なワークフロー

Tableau Server in a Container の基本的なワークフローは以下のとおりです。リンクの各ステップの詳細な手順を確認できます。

  1. セットアップ ツールを使用して、Tableau Server in a Container のカスタム イメージを作成します。Tableau Server in a Container - セットアップ ツールの使用を参照してください。
  2. 作成したイメージを実行して、Tableau Server in a Container を起動して使用します。Tableau Server in a Container - イメージの使用を参照してください。

Tableau Server の機能に関する考慮事項

コンテナーでは、Tableau Server の一部の機能の動作が異なります。このセクションでは、コンテナー環境で特別な考慮事項または異なる考慮事項がある特定の機能について説明します。

Active Directory

AD ドメイン コントローラーを設定する

Tableau Server Web ページおよびサイトのアイデンティティ ストアとして Active Directory を使用することを計画している場合は、追加の考慮事項があります。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 キーストアにインポートする

既定では、Tableau Server in a container は、シンプル バインドが使用されるたびに StartTLS を介して AD と通信します。したがって、コンテナーをこの構成で実行する場合は、AD サーバー証明書を Tableau Server キーストアにインポートする必要があります。そうしなければ、サーバーの初期化が失敗します。これを行うには、次のステップに従ってください。

  1. pre-init-command スクリプトを作成します (初期化前のスクリプト セクションを確認してください)。次の行を追加して、AD 証明書を Tableau Server キーストアに追加します。

    ${INSTALL_DIR}/packages/repository.${SERVICE_VERSION}/jre/bin/keytool -importcert -noprompt -alias startTlsCert -file <mounted-certificate-path> -storetype JKS -storepass changeit -keystore ${DATA_DIR}/config/tableauservicesmanagerca.jks
  2. pre-init-command スクリプトの -file パラメーターに提供されたファイル パスに AD サーバー証明書をマウントします。

または、StartTLS を介して AD と通信する既定の設定を無効にすることもできます。wgserver.domain.ldap.starttls.enabledfalse に設定し、StartTLS を無効にします。ただし、これは推奨されていません。

注: AD を使用した構成エンティティの例については、「LDAP - Active Directory」を参照してください。

展開構成の例

Docker

Tableau Server in a Container の基本的な使用例
docker run \
-e LICENSE_KEY=<key>
-p 8080:8080
-d <Tableau Server in a Container image ID or tag>
自動化された初期管理ユーザーによる Tableau Server in a Container の基本的な使用例
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 の構成

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>

 

 

フィードバックをありがとうございます。フィードバックは正常に送信されました。ありがとうございます!