Tableau Server for Linux 10.5 Beta in AWS EC2 (Part 1)

Update: As of 15th of January 2018, Tableau 10.5 has been released I have updated links to the online help.

First things first, go ahead and check out the Pre-release site to register, check out the release notes and download the latest Beta for the Linux version of Tableau Server.  I’ll be going ahead and setting this up in an AWS EC2 using a 64-bit CentOS Linux instance.  This is a machine that will primarily be used for testing and will spend most of it’s life powered down, so I have decided not implement things such as firewalls and use local authentication only.  Your situation may be different, so please adjust accordingly 🙂

Assumptions:

  • You already have an account in AWS
  • …and you have access to your AWS Access Keys
  • You are aware that this is a Beta and hence not recommended in Production environments.

One handy utility is curlWget  which, as per the author, “Builds a command line for ‘curl/wget’ tools to enable the download of data on a console only session.”.  Exactly what we need 🙂  and is really helpful for accessing those complex URL’s when downloading the RPM packages.   Another utility you will want is WinSCP.

For reference you will want to bookmark the site below, which is (currently as of  November 2017) still in Beta.:

http://onlinehelp.tableau.com/current/server-linux/en-us/server_linux.htm

Before I go on, it is assumed that you are aware of Tableau Server’s requirements for use in Development and Production requirements.  If not, take a look here:

2017-11-05_22-52-24

…and for Production spec instances – not that you should be running the Beta in production:

2017-11-05_22-52-08

As of today (Nov. 2017) the current supported Linux distrbutions are :

  • Red Hat Enterprise Linux (RHEL) 7, CentOS 7, and Oracle Linux 7.
  • Ubuntu 16.04 LTS only.  Version 17.04 is not supported.

For this installation I’ll use CentOS 7, and this one looks like a good one to use from the AWS Marketplace.

AWS Marketplace-2017-11-07_10-07-48.png

This won’t be a detailed walk through of setting up your AWS EC2 instance as there’s lots of resources around that, however here are a few highlights to ensure a smoother Tableau install later on:

Instance details – ensure you pick a supported instance as per above:

EC2 instance details (1)

Storage capacity – ensure you pick at least 50GB of storage during Step 4: “Add Storage”.  You can add storage afterwards of course using Linux’s disk and file management tools.

EC2 storage

Security Group configuration in EC2 – Ensure you open the ports shown below at a minimum.  These ports are outlined in the jump-start install for Tableau Server on Linux:

EC2 security groups-ports-2.png

..again as a caveat, security for this installation is not the primary concern for my specific use and you should do your own investigation as to what’s appropriate for your use case, i.e:

security group warnings in EC2

…and finally you should have access to that public/private key pair, right?

AWS EC2 keypair.png

Launch, wait a few minutes and then connect using your key pair via PuTTy or mRemoteNG and you should get a command prompt as ‘centos’ user:

CentOS prompt

Finally double check you have everything ready for Tableau Server installation, namely:

  • Operating system: CentOS 7 or Ubuntu
  • Opened ports: TCP 80, TCP 8850, UDP 2233
  • Tableau Server administrator account: admin (yours might be different)

Once all done, go to Part 2…

Advertisements

Tableau Server for Linux 10.5 Beta in AWS EC2 (Part 2)

Update: As of 15th of January 2018, Tableau 10.5 has been released I have updated links to the online help.

If you haven’t already, check out Part 1 to make sure your AWS EC2 machine is ready for installation of Tableau Server.

For this section we will look at installing Tableau Server into our CentOS Linux instance.  There have been huge advances in simplifying the Linux install since the early Alpha’s and Beta’s of the version.  A big thumbs up for that 🙂

The Tableau Server Linux Beta installers are available from the Pre-release site.  So ensure you have registered on the site to get access to all the official material.
For reference, the process of the installation is summarized in the Tableau  Jump-start Installation for Linux section of the online help and as a result, this is by no means a replacement of that.

Preparation

You should be able to connect remotely to your instance via SSH and have a login prompt.:

Using username "centos".
Authenticating with public key "imported-openssh-key"
Last login: Tue Oct 31 13:06:16 2017
[centos@ip-172-31-3-143 ~]$

Lets update our system with the latest CentOS packages:

sudo yum check-update
sudo yum upgrade -y
sudo reboot

After the reboot  (for good measure), install some additional packages that will make our life easier:

sudo yum install wget nano epel-release  -y
sudo yum upgrade -y

We now need to pull down the installers into our Linux instance for installation.  An easy way to do this, is to simply download the files onto your local PC and then using winSCP, login to your Linux machine and upload the files into it.

However, you can download the files from within Linux.

The image below shows the wget URL from the Prerelease site you can use to download the main installer into your server:

wget -c http://beta.tableau.com/linux_files/tableau-server-10.5-beta5-1.x86_64.rpm

Check the hash values to make sure it all downloaded correctly.

Installers.png

Also, you can install something like curlWget  as an addon extension in Chrome and use the URL that gets generated within your linux instance.  As per the authors overview “..Builds a command line for ‘curl/wget’ tools to enable the download of data on a console only session.” Exactly what we need 🙂

You will likely need this (or the winSCP method) for the Linux data source drivers.

curlWget-extension.png

2017-11-07_10-04-22

Install files are now ready to go…

install files.png

New to the Linux version is the Tableau Services Manager  , and as mentioned it’s designed as a replacement for the Tableau Server Configuration applet, tabadmin command line and the Tableau Server Monitor.

Installation

Once you have the installation files in your machine (using either of the methods above) and configured your user(s),  we can start the installation process.  Most of this is covered in the Jump-start installation, but I’ll summarize below.

sudo yum install tableau-server-10.5-beta5-1.x86_64.rpm 
cd /opt/tableau/tableau_server/packages/scripts.10500.17.1030.1652/
sudo ./initialize-tsm --accepteula
exit

…this will drop your session.  Just simply log back in…

Users

I enabled a password for the ‘centos’ user as that was the user I decided will be the Tableau Server admin.  However, it might be worthwhile to add a different user.  The example below shows adding a new user ‘admin’ to groups ‘tableau’ and ‘tsmadmin’:

sudo adduser admin
sudo passwd admin 
<mypassword>
sudo usermod -aG wheel admin
sudo usermod -aG tsmadmin admin
sudo usermod -aG tableau admin

Log into TSM as this user:

tsm login -u admin
tsm licenses activate -t

We now need to generate a registration file template to hold registration details.

tsm register --template > registration_file.json

Edit this registration file using nano and enter the details as required and save:

nano registration_file.json

registration config.png

Import this registration file into Tableau:

tsm register --file ./registration_file.json

The next step, would typically be configuring your server firewall.  However as mentioned I don’t need to configure this, so I’ll just go ahead and skip this section.  For those of you that need to test this, take a look at the details in the online help for more information on configuring your firewall (firewalld, iptables etc.).

Other configuration details:

From here, I’m going to use the defaults, i.e. local identity store, no SSL/HTTPS so the standard default ‘config’ details will be fine.  More details are here  . A sample is shown below:

{
 "configEntities": {
 "gatewaySettings": {
 "_type": "gatewaySettingsType",
 "port": 80,
 "firewallOpeningEnabled": true,
 "sslRedirectEnabled": true,
 "publicHost": "localhost",
 "publicPort": 80
 },
 "identityStore": {
 "_type": "identityStoreType",
 "type": "local",
 "domain": "example.lan",
 "nickname": "EXAMPLE"
 }
 },
 "configKeys": {
 "gateway.timeout": "900"
 }
}

Import this configuration file into Tableau and apply ‘pending’ changes:

tsm settings import -f ./config.json 
tsm pending-changes apply

apply-pending-changes.png

Start Tableau Server:

tsm initialize --start-server --request-timeout 1800

TSM start server.png

..and finally create the initial Tableau Server Administrator user.  In my case, it’s ‘admin’.

tabcmd initialuser --server 'localhost:80' --username admin --password <strong password>

Make sure you have the Data Source drivers.  I used the curlWget method to directly download (wget) these drivers into my Linux instance.  Otherwise you can use WinSCP (or similar) to upload them from your local PC.

Then, finally install the drivers:

sudo yum localinstall -y SimbaTeradataODBC64-16.10-1.x86_64.rpm tableau-essbase-11.1.2.4.0-1.x86_64.rpm tableau-freetds-1.00.40-1.x86_64.rpm tableau-oracle-12.1.0.2.0-1.x86_64.rpm tableau-postgresql-odbc-9.5.3-1.x86_64.rpm

Bring up a browser and login to your new Tableau Server using the credentials above.

http://your.external.ip.address/

Tableau Linux browser.png

up and running.png

Enjoy…