Advanced Deployment (10/10) : Desktop & Prep Deployment in enterprise

I wanted to close this advanced deployment series with Desktop and Prep Builder enterprise deployment approach : how to let users to get Desktop & Prep installed and activated automatically with a single package.  My installer has the following features:

  • Install Desktop
  • Install Prep
  • Activate and register Desktop and Prep license
  • Get Desktop reporting setup
  • Customize the Desktop settings, for example Custom Discover Pane link, turn off Extension, add server URL
  • Hide license key

Why we do this?

  1. Benefits for users:
    • Simple
    • Don’t have to enter email, address, etc
    • Don’t have to figure out which version to download or to use
    • Don’t need to enter license key
  2. Benefits for Tableau team:
    • License asset protection
    • Easy to track who installed
    • Control the Desktop settings

How to do it?  There things:

desktop installer

  1. Build installer package with both Desktop and Prep

I work in Mac env so the installer I built is for Mac only but the process works for Windows as well.

I use a free software Packages V1.2.8 (588). To make it easy for you, here is actual working package used:

TableauV2020.1_share.pkgproj

  • Pls download the above file
  • Remove the .txt from filename (I have to add .txt since the web site don’t allow me to upload .pkgproj file)
  • Open it with Packages V1.2.8 or newer version, you will see exactly how it works.
  • As you can see that the Payload has both Tableau Desktop.app and Tableau Prep.app. So the installer will get it installed one by one automatically.  You download Tableau’s .dmg, install once to get the.app.
  • If you build the package for V2020.1 and you have problem to notarize your package, it is due to Tableau’s original “/Applications/Tableau Prep Builder 2020.1.app/Contents/NOTICES.txt” has its own code signature that is being removed once you copy.  You have to find a way to keep the hidden attributes to make it work.  After I gave this feedback to Tableau Dev, I heard that the issue would be fixed in Prep 2020.2 where NOTICES.txt is in Resources folder.
  • Important notes about FlexNet
    • Make sure to install it in the correct path
    • Get the postinstall.sh from Tableau Desktop or Prep’s original package and add it to postinstall.sh
    • Make sure FlexNet’s postinstall.sh runs first BEFORE license activation command to avoid activation error.
  • You should also have additional postinstall scripts that will be discussed next steps. You can also have preinstall.sh as your choices.

Desktop_Payload

2. Automate license activation and registration

The most tricky part is the license key distribution and user data collection process, that varies depends on your env. Some tips:

  • If you have one enterprise master key for all of your Desktop/Prep license, make sure to greg out  Help > Manage Product Keys so Desktop users will not see the key. This is actually done by Tableau license team.  They have an option to hide the key when the key is cut. Please work with your account manager for this.
  • The master key will be kept in your company hidden website that the installer can get but regular users can’t see it
  • The postinstall script will download the key and then use “Tableau Desktop.app /Contents/MacOS/Tableau -activate $license_key” to activate it.
  • You can still achieve the automated activation even you have individual keys kept somewhere for installer to grep.
  • 2020.1’s server user to activate Desktop feature is another option to handle license activation.
  • Before you can use “Tableau Desktop.app /Contents/MacOS/Tableau -register ” , you have to find way to get your user data from the Mac or Windows PC:
    • `defaults write $path Data.first_name $registration_info_given_name`;
    • `defaults write $path Data.last_name $registration_info_last_name`;
    • `defaults write $path_root Data.email $registration_info_email`;

3. Post Install configurations

This is where you can enforce Desktop configurations automatically:

  • Set Reporting server URL so all your Desktop usage can be sent
  • Turn off Extension if you want.
  • If you have your own Extension gallery and you want Desktop users to get your own Extension gallery vs Tableau’s galley whenever use drag the Extension to a dashboard, you can add the following line to the /etc/hosts
    • “your_own_extension_galley_ip_address\textensiongallery.tableau.com\n”;
  • I also rename Tableau Desktop xxxx.x.app to Tableau Desktop.app after installation so users do not have to think which app to use
  • I rename Tableau Prep Builder xxxx.x.app to Tableau PrepBuilder.app after installation as well
  • I also launch one website for new Desktop users automatically after installation.
  • Of course, you can change Desktop Discover links to your own internal Tableau related resources. I used to hack this with help from Tamas Foldi. Finally Tableau released this feature in 2020.1.
  • I also have to include a few other plist updates here
    • `defaults write $path AutoUpdate.Server Your_server_URL_without_https://`;
    • `defaults write $path AutoUpdate.AutoUpdateAllowed 1`;
    • `defaults write $path AutoUpdate.AutoUpdateAllowed False`;
    • `defaults write $path Settings.WorkgroupServer https://`; #this will modify default URL from http:// to https:// when Desktop is used the very first time#
    • `defaults write $path WorkgroupEffectiveServers https://`;
    • `defaults write $path Settings.WorkgroupServerKerberosCapable 0`;
    • `defaults write $path DiscoverPane.DiscoverPaneURL https://xxx/DesktopLink.html`;
    • `defaults write $path Settings.Extensions.DisableNetworkExtensions 1`;
    • `defaults write $path Settings.Extensions.DisableNetworkExtensions 1`;
    • `defaults write $path Telemetry.TelemetryEnabled 1`;
  • You can use your creativity and do a lot of things here, like sending them an email, etc

Re-Cap: Auto install Desktop & Prep is awesome way for enterprise deployment. It saves me a lot of time and users love it!