The Tableau Server installer uses a wizard-like approach to installing and configuring Tableau server. This approach works well for many users and administrators, but limits the ability to perform automated deployments using tools like Chef or Puppet.
We are providing some reference implementations to show users and organizations how they can automate deployment of Tableau Server, using scripts to prepare the installation and run the installer executable with appropriate command-line arguments.
See also Automated Installation of Tableau Server for general documentation regarding this feature.
Please use 'Issues' to note any bugs or make suggestions.
This repository has the following samples for performing installs and/or upgrades of Tableau Server:
- ScriptedInstaller.py: Python script for installing or upgrading Tableau Server. This script supports both single and multi-node instances of Tableau Server. We have also included several samples of the input files to the installer script.
- AWS CloudFormation Templates: Sample AWS CloudFormation templates for deploying Tableau Server to Amazon Web Services(AWS).
This is a reference Python script to install or upgrade Tableau Server.
This script targets Python version 2.7.12. It also requires the PyYaml module which can be installed as follows:
pip install pyyaml
The script has two "modes"; install and upgrade ; each mode can have several arguments.
For a new install:
python ScriptedInstaller.py install --installerLog C:\Temp\tabinstall.txt --installDir C:\TableauServer --secretsFile secrets.json --configFile myconfig.yml --registrationFile registration.json --licenseKey THIS-IS-MYLI-CENS-EKEY Setup-Server-x64.exe
Special Note: When doing an installation on a distributed cluster, you will need to first run the Tableau Server Worker Installer on each worker machine and use the /PRIMARYIP switch to specify the IP Address/Hostname of the primary machine. Then run the Python script as shown above on the primary once all the software has been successfully installed on all workers.
For an upgrade:
python ScriptedInstaller.py upgrade --fastuninstall --installerLog C:\Temp\tabupgrade.txt --installDir C:\TableauServer Setup-Server-x64.exe
The script currently only supports upgrading a single-node server from version 9.0.x or higher, or a cluster from version 9.3.x or higher.
Option | Argument | Required | Description |
---|---|---|---|
--installDir | [FILE PATH] | Optional | The Tableau installation directory. The software binaries, configuration, and data will all live in a a directory tree rooted here. If omitted, the default directory C:\Program Files\Tableau\Tableau Server will be used for the binaries, and configuration and data will live under C:\ProgramData\Tableau |
--configFile | [FILE PATH] | Optional | Path to a .yml Server Configuration File (relative or absolute) describing the Tableau Server configuration. This file's content is the same as the tabsvc.yml file. If this argument is omitted, all Tableau defaults will be used for configuration. |
--installerLog | [FILE PATH] | Optional | Path to where the installer executable should write its log file. The directory must already exist. If omitted, the log will be written under the user's TEMP directory. |
--enablePublicFwRule | Optional | Use this to specify that a firewall rule to enable connections to the Gateway process (if configured to be created at all), should also be enabled on the Windows "public" profile. If omitted, the firewall rule, if created at all, will default to the private and domain profiles only. | |
--secretsFile | [FILE PATH] | Required | Path to a .json file (relative or absolute) that describes both the credentials of the Windows account that Tableau Server will run as, and the username/password of the initial admin user for Tableau Server. See Secrets File for more information. |
--registrationFile | [FILE PATH] | Required | Path to a .json file (relative or absolute) describing the Tableau Server registration information. See Server Registration File for more information. |
--licenseKey | [KEY] | Required | Your server license key, acquired through the usual channels. |
(installer executable) | [FILE PATH] | Required | The final argument to the script is simply the path, absolute or relative, to the Tableau Server installer executable, acquired through usual channels such as downloaded from the Tableau Website. This script is only supported for use with Tableau Server v10.1 and higher. |
A quick note: the same installer executable used to perform a fresh install is used to perform an upgrade. The word 'install' in this section can be considered synonymous with 'upgrade'
Option | Argument | Required | Description |
---|---|---|---|
--installDir | [FILE PATH] | Optional | The current Tableau installation directory. The software binaries, configuration, and data will all live in a a directory tree rooted here. If the script does not find an existing installation at this directory, it will abort. If omitted, the default directory C:\Program Files\Tableau\Tableau Server will be used for the binaries, and configuration and data will live under C:\Program Data\Tableau |
--secretsFile | [FILE PATH] | Optional | Path to a .json file (relative or absolute) that describes the credentials of the Windows account that Tableau Server runs as. This is needed for an upgrade if you are not using the default Run As user account. See Secrets File for more information. |
--installerLog | [FILE PATH] | Optional | Path to where the installer executable should write its log file. The directory must already exist. If omitted, the log will be written under the user's TEMP directory. |
--fastuninstall | Optional | If specified, this will perform the upgrade using the /FASTUNINSTALL switch, which skips creating a backup before performing the upgrade (which uninstalls the old version and then installs the new version). This greatly speeds up the upgrade process; consider using this if you already have a recent backup or feel particularly lucky today. If omitted, the upgrade process will not use /FASTUNINSTALL and a backup will be created before the upgrade is performed_ | |
(installer_executable) | [FILE PATH] | Required | The final argument to the script is simply the path, absolute or relative, to the Tableau Server installer executable, acquired through usual channels such as downloaded from the Tableau Website. This script is only supported for use with Tableau Server v10.1 and higher. |
{
"runas_user":"workgroup\\serviceuser",
"runas_pass":"password",
"content_admin_user":"admin",
"content_admin_pass":"password"
}
If runas_user is not set, the system will use the Windows built-in user NT AUTHORITY\NETWORK SERVICE. If runas_pass is not set, the system will assume the password is blank. In the case where the server is being upgraded, these credentials describe the user the server should run as after the upgrade; normally, these will be the same credentials as when the server was installed. If this file is not specified, the system assumes the runas username hasn't changed and the password is blank.
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. In the case where the server is being upgraded, these credentials are ignored because the initial admin user has already been created.
---
config.version: 15
vizqlserver.data_refresh: 6
worker0.backgrounder.procs: 3
worker0.cacheserver.procs: 3
worker0.dataengine.procs: 2
worker0.dataserver.procs: 3
worker0.gateway.port: 88
worker0.vizportal.procs: 4
worker0.vizqlserver.procs: 3
storage.monitoring.critical_percent: 12
storage.monitoring.email_enabled: true
storage.monitoring.email_interval_min: 65
storage.monitoring.warning_percent: 22
subscriptions.enabled: true
svcmonitor.notification.smtp.canonical_url: http://mylinkurl.example.com
svcmonitor.notification.smtp.enabled: true
svcmonitor.notification.smtp.from_address: [email protected]
svcmonitor.notification.smtp.password: smtppassword
svcmonitor.notification.smtp.send_account: smtpuser
svcmonitor.notification.smtp.server: mail.example.com
svcmonitor.notification.smtp.target_addresses: [email protected]
vizqlserver.data_refresh: 6
service.init.state: start
Hint: To install a server with the same configuration as an existing server, you can just copy the contents of the existing server's tabsvc.yml file. By default this is located in C:\ProgramData\Tableau\Tableau Server\config
. If generating your own configuration file, you will need to add the config.version: (15 for 10.1) so the server can handle any conversions, updates, or configuration options.
{
"first_name" : "John",
"last_name" : "Smith",
"email" : "[email protected]",
"company" : "Example, Inc",
"title" : "Head Cat Herder",
"department" : "Engineering",
"industry" : "Finance",
"phone" : "123-555-1212",
"city" : "Kirkland",
"state" : "WA",
"zip" : "98034",
"country" : "United States"
}
- If you use the
--configfile
option to specify a custom configuration file, verify that the .yml file that you provide is valid for your Tableau Server installation. Pay special attention that hostnames and IP addresses match those of the cluster that you are deploying to. - Upgrades using the Python script only work for upgrades from version 9.0.x and higher for a single-node server, or version 9.3.x and higher for a cluster. For previous version of Tableau Server, you will need to first uninstall Tableau Server from the primary machine and all worker machines. Then, proceed as you would for a multi-node install of Tableau Server.
- For additional troubleshotting tips, See Troubleshoot Tableau Server Install and Upgrade