Amazon Linux 2 installation prerequisites

Prepare the system and ThoughtSpot clusters for installation.

These are the general steps for installing ThoughtSpot on Amazon Linux 2:

1. Set up hosts for the ThoughtSpot cluster

2. (Optional) Set up AWS Systems Manager Agent

3. Partition the hosts

4. Enable the hosts to download Amazon Linux 2 packages

5. Ensure tmp has permission 777 or 1777

6. Ensure /proc mount point flags are compatible

7. Remove Defaults requiretty from /etc/sudoers

(Optional) Enable an Ansible Control Server

ThoughtSpot recommends using private subnets for communication. Wherever there is a need to connect to the public internet, you should do it through a NAT gateway.

Set up hosts for the ThoughtSpot cluster

Set up hosts for the ThoughtSpot cluster on Amazon Web Services.

  1. Refer to AWS configuration options for the exact specification for the hosts in regard to CPU, memory, and disks.

  2. Refer to Set up AWS resources for ThoughtSpot to create and launch your AWS virtual machines.

[Optional] Set up AWS Systems Manager Agent

If you plan to use the AWS SSM agent as an alternative to SSH, create a new IAM role while creating VMs. This IAM role must have an SSM policy to grant AWS SSM permission to perform actions on your instances. Refer to Create an IAM instance profile for Systems Manager.

You must install the SSM agent on each node. Refer to Manually install SSM Agent on EC2 instances for Linux, if the SSM agent is not already on each node.

Partition the hosts

Ensure that all ThoughtSpot hosts meet the following partition and sizing requirements. All drives must be SSDs.

Do not partition the data drives. ThoughtSpot partitions the data drives during installation. For information about data drive specifications, refer to the intro articles for each platform linked in the set up hosts section of this article.

Path Required free space

/

20 GB. This is the root drive.

/tmp

50 GB

/export

200 GB, on a separate filesystem. This must also be separate from the data drives.

Enable the hosts to download Amazon Linux 2 packages

Repositories

Yum repositories

You must enable the following Yum repositories in your cluster:
epel, google-cloud-sdk, pgdg11, and pgdg95..

Python repository

For Python, ensure that the machine is able to reach the PyPI repository located at https://pypi.python.org/.

R repository

For R, ensure that the machine is able to reach the CRAN repository located at https://cran.rstudio.com/. Make sure that you can download Amazon Linux 2 packages to all hosts, either from the official package repositories, or from a mirror repository owned and managed by your organization If you cannot access the Amazon Linux 2 repositories, there is no mirror repository in your organization, or you are unable to access Yum, Python, or R repositories, please contact ThoughtSpot Support.

Official package repositories

If the hosts of your ThoughtSpot cluster can access external repositories, either directly or through a proxy, your cluster is online. You can then proceed to download Yum, Python, and R package repositories.

Internal mirror repository

If the hosts of your ThoughtSpot cluster have access to an internal repository that mirrors the public repositories, copy the Yum, Python, and R package repositories to your hosts.

Ensure tmp has permission 777 or 1777

The /tmp directory must have either the 777 or 1777 permission. 1777 is the 777 permission but with the sticky bit set. If you mount the /tmp directory as a separate partition, it must NOT have the noexec flag set.

Ensure /proc mount point flags are compatible

You cannot mount the /proc mount point with the hidepid flag. You must mount it without that flag.

Remove Defaults requiretty from /etc/sudoers

The /etc/sudoers file must not have the Defaults requiretty line. This line can cause cluster creation to fail.

[Optional] Enable an Ansible Control Server

Optionally configure an Ansible Control Server, on a separate host, to run the Ansible playbook that ThoughtSpot supplies. You must install both rsync and Ansible on the Ansible Control Server host.