Clone Tableau Server

Beginning with version 2022.3 of Tableau Server, a new tsm command enables you to create a copy of the configuration and topology of a Tableau Server deployment and use that to create an exact replica of the original deployment. The command, tsm settings clone, creates a set of files (the "clone payload") includes settings, secrets, configuration, and topology, including ports being used, and information about external services.

Security considerations

The tsm settings clone command generates a set of files (the "clone payload") that contain all the secrets generated by Tableau Server, as well as those provided by the server administrator during configuration, including a keystore containing keypairs and certificates. It is extremely important for security that you keep the clone payload and the output location secure. To facilitate this:

  • If the output directory does not exist, tsm will create it with access restricted to the user running the tsm settings clone command.
  • If the output directory exists when you run the command, tsm will confirm that it is owned by the user running the command, and that permissions are limited to only that user. If the directory does not have the expected permissions, a message displays:

    The output directory '<path/to/directory>' exists, but must be restricted to owner only.

Limitations of the clone payload

  • The version of Tableau Server being cloned must match the version being created. You cannot install a newer version of Server using a clone payload from an older version.

Using the clone command to create a copy of Tableau Server

Creating a cloned copy of Tableau Server is a multi-step process, with the two high level steps being:

  1. Create a clone payload from the Tableau Server installation you want to duplicate.
  2. Use the clone payload to install a second deployment of Tableau Server. You are responsible for matching the topology of the two installations, adding additional nodes to match the original deployment.

Creating the clone payload

To generate a set of files (clone payload) that contain the configuration and topology settings for Tableau Server, use the tsm settings clone command. The command takes a single argument, the output directory where the set of files should be saved:

tsm settings clone --output-directory <output_directory>

Once the clone payload is created, you can use this when installing a new instance of Tableau Server with the identical configuration and topology of the source installation.

Using the clone payload to create a copy of Tableau Server

  1. Install the Tableau Server package on the initial node. Do not initialize Tableau Server. Install the Tableau Server package

  2. Run the initialize-tsm script and specify the path to the clone payload created by the tsm settings clone command:

    sudo /opt/tableau/tableau_server/packages/scripts.<version>/initialize-tsm --accepteula --clone-artifact-dir=<path-to-clone-directory>

    Note: Tableau Server runs as unprivileged tableau user therefore administrator must ensure that tableau user will have read access to the clone directories and files. This in most cases requires granting read permissions on clone directory content as well as execute permission (for traversal) on all parent directories to "others" .

  3. (Optional) Install additional nodes to match the number of nodes on the original (cloned) installation of Tableau Server. If the original installation had additional nodes, this step is required. Only install additional nodes to match the number on the original installation.

    1. Generate the bootstrap file on the initial node:
    2. Install Tableau Server on each additional node and run the initialize-tsm script:

      Install and Configure Additional Nodes

  4. On the initial node, complete the initialization:

    tsm initialize

Container

Clone functionality is convenient when using Tableau Server in a Container, especially when used with external repository and storage. The clone command allows the administrator to quickly recreate a Tableau Server environment and reattach the external services.

Note: The steps to recreate Tableau Server cluster may differ depending what container technologies are being used (for example: docker, docker compose, or Kubernetes).

The below information is specific to using docker directly. When starting up the initial node container, you need to specify the location of the clone payload using the CLONE_ARTIFACT_DIR environment variable.

For example:

docker run \
-v <path-to-clone-directory>:/docker/custom-clone-path \
-e CLONE_ARTIFACT_DIR=/docker/custom-clone-path \
-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>

Recreating a multi-node deployment of Tableau Server in a Container

If your clone payload came from a multi-node Tableau Server deployment your initial container will wait for additional nodes to join the cluster.

Setting up additional nodes in the cluster when using clone is same as adding nodes in a regular deployment and requires:

  • Mounting volumes to share the bootstrap file between the nodes
  • Specifying ALWAYS_WRITE_BOOTSTRAP_FILE and BOOTSTRAP_INSTALL environment variables

Detailed steps to create a multi-node environment in a container deployment can be found here: Multi-node Tableau Server in a Container.

Note: The clone payload only needs to be mounted and used on the initial node in the cluster. You do not need to mount the clone payload on additional nodes.

Thanks for your feedback!Your feedback has been successfully submitted. Thank you!