Automated Installation of Tableau Server

You can use SilentInstaller.py, a community supported(Link opens in a new window) Python script, to automate a new install of Tableau Server. You can download the script and use it as written, or modify it for your specific needs.

Benefits of using the automated installer

  • With a single command, you can install, configure, and run a working instance of Tableau Server.

  • The SilentInstaller.py script can be run without user input making it suitable for automation.

  • The configuration can be set once and used for all your installations, making this a repeatable process.

When not to use the automated installer

  • If you are installing Tableau Server for the first time, we recommend that you manually test your installation before automating the process. Any issues that block installation are easier to resolve interactively. After you have resolved these issues, you can perform an automated installation of Tableau Server using the SilentInstaller.py script.

  • If you are testing or trying new configuration parameters such as authentication methods, we recommend that you manually run the installation first. Tableau Services Manager (TSM) validates configuration entities and rejects configuration parameters that are not valid. Once you have the correct parameters identified, you can use the automated installer.

  • If you are unable to or do not want to enter passwords into the secrets file, using the automated installer might not be an option for you.

Before you begin

Review Before you install... to make sure you have installed Microsoft Windows Server on a computer that meets the operating system requirements and the minimum hardware requirements for Tableau Server.

Note: If you are installing Tableau Server in a production environment, review the minimum hardware recommendations. The recommendations represent the minimum hardware configuration you should use for a production installation of Tableau Server.

To perform an automated installation, you use the SilentInstaller.py script, which relies on the Tableau Server install package as an input. Before you begin, we recommend that you download the following packages:

  1. Download Python 3.5(Link opens in a new window) or later and install it on the computer on which you want to install Tableau Server.

  2. Download both the SilentInstaller.py script and the Tableau Server installer package:

    1. Download the SilentInstaller.py script from GitHub(Link opens in a new window), along with config.template.json, registration.template.json, secrets.template.json, and the three bootstrap templates (bootstrap.template.json, topologyBootstrap.template.json, and workerBootstrap.template.json).

    2. Select and download the appropriate Tableau Server installer package from the Tableau Server Product Downloads(Link opens in a new window) page. The one you choose depends on the version of Microsoft Windows Server you want to use.

  3. Copy the packages and templates to a location on or accessible from the computer on which you are going to install Tableau Server.

How to use the SilentInstaller.py script

The SilentInstaller.py script installs the Tableau Server installer package, creates the directories, sets the permissions required to run Tableau Server, and starts the Tableau Services Manager (TSM) setup. After TSM setup is complete, the SilentInstaller.py script runs tsm commands to install, configure, and start Tableau Server. By default, the SilentInstaller.py script activates a trial licence during installation. If you have an actual product key, you can provide the product key at the command line or activate the product key after you run the SilentInstaller.py script. Most of the command line options in the automated installer are the same as the options used by the tsm initialise command.

You can run the SilentInstaller.py script in three modes: install the initial node, install additional nodes, and update cluster toplogy. When doing an installation for a distributed cluster, you'll run SilentInstaller.py with the options to install the initial node on the initial node. You'll run SilentInstaller.py with the options to install additional nodes on each additional node. Lastly, you'll run SilentInstaller.py with the options to update cluster topology on the initial node.

The SilentInstaller.py script is meant to be run without user interaction, so you must input all parameters into the required arguments that are passed to the SilentInstaller.py script. Alternatively, you can also put the required arguments into the bootstrap file. You can use the Configuration, registration, and secrets file templates provided.

Use the following steps to perform an unattended installation:

Step 1: Install the automated installer

  1. Log onto the computer as a user with administrator access.

  2. Download and install the SilentInstaller.py script, templates, and bootstrap files.

Step 2: Create files to provide additional configuration information required to run the automated install

Since the SilentInstaller.py script is meant to run without user interaction, you must provide the following additional information:

  1. Copy the templates, config.template.json, registration.template.json, and secrets.template.json, to another directory, such as your home directory. We don't recommend that you edit the template files directly.

  2. Edit the config.template.json file and provide the initial node configuration settings. You must provide identity store settings for the Tableau Server computer. Depending on your network requirements, you may need to also provide the gateway settings. The caching option is set to cache and reuse data for as long as possible. Sample workbooks are installed by default. The template includes the minimum required information, so the template is a starting point. For more information on configuration settings, see Configure Initial Node Settings.

  3. Edit the registration.template.json file and provide the information needed to register Tableau Server. For more information, see Activate and Register Tableau Server.

  4. Edit the secrets.template.json file and provide the user name and password for the TSM administrator and Tableau Server administrator accounts.

    • The TSM administrator account should be the same user as the Windows administrator running the script.

    • The Tableau Server administrator account is the initial account that is created by the installer and is used to administer Tableau Server.

Step 3: Run the automated install

  1. Log onto the computer as a user with administrator access.

    Install the initial node

    The SilentInstaller.py script runs the proper commands to install, activate licence, configure, and start Tableau Services Manager. Run SilentInstaller.py -h and SilentInstaller.py install –h to see the full list of options and their default values.

    To install the initial node:

    On the initial node, at a Python prompt, type:

    SilentInstaller.py install --secretsFile secrets.json --configFile myconfig.json --registrationFile registration.json TableauServer-64bit-<version>.exe

    Or alternatively:

    SilentInstaller.py --bootstrapFile <bootstrap file path>

    Script Option

    Description

    Required switches 

    --configFile <file path>

    The relative or absolute path to the Server Configuration JSON file.

    --secretsFile <file path>

    The relative or absolute path to the Secrets File that describes the credentials of the Windows account to authenticate to Tableau Services Manager (TSM), and the username/password of the initial administrator user for Tableau Server. The secrets file also includes the product key you want to use to activate Tableau Server. By default, the secrets file template contains a trial licence.

    Note: Providing the password in the secrets file is optional. However, if passwords are not found in the secrets file, you will be prompted to provide them during installation.

    The automated installer package includes the template for the secrets file.

    --registrationFile <file path>

    The relative or absolute path to the Server Registration file containing the Tableau Server registration information.

    The automated installer package includes the template for the registration file.

    <installer executable file path>

    The relative or absolute path to the Tableau Services Manager (TSM) installer.

    Optional switches 

    --installDir <file path>

    The Tableau Server installation directory. If you don't provide a path, the default directory C:\Program Files\Tableau\Tableau Server will be used.

    --dataDir <file path>

    The location where the Tableau Server software configuration and data are stored. If you don't provide a path, the default directory C:\ProgramData\Tableau is used for the configuration and data files.

    --installerLog <file path>

    The existing directory where the installer's log files are written. If you don't provide a path, the log files will be written to your TEMP directory.

    --controllerPort <port number>

    The port on which the Tableau Services Manager (TSM) Controller should run.

    --coordinationserviceClientPort <port number>

    The ZooKeeper client port.

    --coordinationservicePeerPort <port number>

    The ZooKeeper peer port.

    --coordinationserviceLeaderPort <port number>

    The ZooKeeper leader port.

    --start

    Whether the server should be started when setup is complete.

    Install additional nodes

    The SilentInstaller.py script runs the proper commands to install Tableau Services Manager (TSM) on the additional node. Run SilentInstaller.py installWorker –h to see the full list of options and their default values.

    To install additional nodes:

    On each additional node, at a Python prompt, type:

    SilentInstaller.py workerInstall --secretsFile secrets.json --nodeConfigurationFile nodeConfiguration.json TableauServer-64bit-<version>.exe

    Option

    Description

    --secretsFile <file path>

    Required. The relative or absolute path to the Secrets File that describes the credentials of the Windows account to authenticate to Tableau Services Manager (TSM), and the username/password of the initial administrator user for Tableau Server. The secrets file also includes the product key you want to use to activate Tableau Server. By default, the secrets file template contains a trial licence.

    Note: Providing the password in the secrets file is optional. However, if passwords are not found in the secrets file, you will be prompted to provide them during installation.

    The automated installer package includes the template for the secrets file.

    --nodeConfigurationFile <file path>

    Required. Path to the node configuration file for installing the additional node.

    (installer executable) <file path>

    Required. The final argument to the script is simply the path, absolute or relative, to the Tableau Services Manager installer executable, acquired through usual channels such as downloaded from the Tableau Website. This script is only supported for use with Tableau Services Manager.

    --installDir <file path>

    Optional. The Tableau Server installation directory. If blank, the default directory C:\Program Files\Tableau\Tableau Server will be used.

    --dataDir <file path>

    Optional. The location where the Tableau Server software configuration and data are stored. If blank, the default directory C:\ProgramData\Tableau is used for the configuration and data files.

    --installerLog <file path>

    Optional. The existing directory where the installer's log files are written. If blank, the log files will be written to the user's TEMP directory.

    Note: The node configuration file is automatically saved after installing the first node using SilentInstaller.py. You can find it under the working directory of the script.

    Update cluster topology

    The SilentInstaller.py script runs the proper commands to update the cluster topology as desired for Tableau Services Manager (TSM). Run SilentInstaller.py updateTopology –h to see the full list of options and their default values.

    To update cluster topology:

    On the initial node, at a Python prompt, type:

    SilentInstaller.py updateTopology --secretsFile secrets.json --configFile myconfig.json

    Option

    Description

    --secretsFile <file path>

    Required. The relative or absolute path to the Secrets File that describes the credentials of the Windows account to authenticate to Tableau Services Manager (TSM), and the username/password of the initial administrator user for Tableau Server. The secrets file also includes the product key you want to use to activate Tableau Server. By default, the secrets file template contains a trial licence.

    Note: Providing the password in the secrets file is optional. However, if passwords are not found in the secrets file, you will be prompted to provide them during installation.

    The automated installer package includes the template for the secrets file.

    --configFile <file path>

    Required. The relative or absolute path to the Server Topology file describing the Tableau Server topology to update. Only the topologyVersion part of the file will be applied, other configurations will be ignored.

Configuration, registration, and secrets file templates

You can use the following example templates to pass data to the SilentInstaller.py script.

Secrets file template example

{
    "local_admin_user":"",
    "local_admin_pass":"",
    "content_admin_user":"",
    "content_admin_pass":"",
    "product_keys":["trial"]
}

The local_admin_user is the Windows account to authenticate to the Tableau Services Manager.

The content_admin_user is the initial administrative user, who acts as a superuser for all of Tableau Server with respect to creating and managing users, sites, etc.

When installing additional nodes or updating the cluster topoligy, these credentials are ignored because the initial admin user was already created when the initial node was installed.

The product_keys is the key used to activate Tableau Services Manager. If multiple keys are specified, they will be activated one by one. In the case of non-install mode, these keys are ignored because the licences have already been activated.

Server Configuration file template example

{
"configEntities":{
    "runAsUser":{
        "_type":"runAsUserType",
        "name":"NT AUTHORITY\\NetworkService"
    },
    "gatewaySettings":{
        "_type":"gatewaySettingsType",
        "port":80,
        "firewallOpeningEnabled":true,
        "sslRedirectEnabled":true,
        "publicHost":"****replace me****",
        "publicPort":80,
        "sslEnabled":false,
        "sslPort":443
    },
    "identityStore":{
        "_type":"identityStoreType",
        "type":"local",
        "domain":"****Domain Name Here****",
        "nickname":"****Domain Nickname Here****"
    }
},
"topologyVersion":{
    "nodes":{
        "****insert nodeId (lowercase) here****": {
            "services": {
                "filestore": {
                    "instances":[
                        {
                        "instanceId":"0"
                        }
                    ]
                },
                "tabadmincontroller": {
                    "instances":[
                        {
                        "instanceId":"0"
                        }
                    ]
                },
                "clientfileservice": {
                    "instances":[
                        {
                        "instanceId":"0"
                        }
                    ]
                },
                "dataserver": {
                    "instances":[
                        {
                        "instanceId":"0"
                        },
                        {
                        "instanceId":"1"
                        }
                    ]
                },
                "cacheserver": {
                    "instances":[
                        {
                        "instanceId":"0"
                        },
                        {
                        "instanceId":"1"
                        }
                    ]
                },
                "vizqlserver": {
                    "instances":[
                        {
                        "instanceId":"0"
                        },
                        {
                        "instanceId":"1"
                        }
                    ]
                },
                "backgrounder": {
                    "instances":[
                        {
                        "instanceId":"0"
                        },
                        {
                        "instanceId":"1"
                        }
                    ]
                },
                "appzookeeper": {
                    "instances":[
                        {
                        "instanceId":"0"
                        }
                    ]
                },
                "pgsql": {
                    "instances":[
                        {
                        "instanceId":"0"
                        }
                    ]
                },
                "dataengine": {
                    "instances":[
                        {
                        "instanceId":"0"
                        }
                    ]
                },
                "licenseservice": {
                    "instances":[
                        {
                        "instanceId":"0"
                        }
                    ]
                },
                "searchserver": {
                    "instances":[
                        {
                        "instanceId":"0"
                        }
                    ]
                },
                "clustercontroller": {
                    "instances":[
                        {
                        "instanceId":"0"
                        }
                    ]
                },
                "tabsvc": {
                    "instances":[
                        {
                        "instanceId":"0"
                        }
                    ]
                },
                "vizportal": {
                    "instances":[
                        {
                        "instanceId":"0"
                        }
                    ]
                },
                "tabadminagent": {
                    "instances":[
                        {
                        "instanceId":"0"
                        }
                    ]
                },
                "clientfileservice": {
                    "instances":[
                        {
                        "instanceId":"0"
                        }
                    ]
                },
                "gateway": {
                    "instances":[
                        {
                        "instanceId":"0"
                        }
                    ]
                }
            }
        }
    }
}
}
			

Server registration file template example

{
    "first_name" : "Andrew",
    "last_name" : "Smith",
    "phone" : "311-555-2368",
    "email" : "andrew.smith@mycompany.com",
    "company" : "My Company",
    "industry" : "Finance",
    "company_employees" : "500",			
    "department" : "Engineering",
    "title" : "Senior Manager",
    "city" : "Kirkland",
    "state" : "WA",
    "zip" : "98034",
    "country" : "United States",
    "opt_in" : "true",
    "eula" : "true"
}

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