In some systems the control pool consists of a single machine—referred to as the "controller." This also hosts the web and data aggregation services so that there is no separate web pool. At larger scales a web pool of additional machines can be added to increase capacity for web and data aggregation services, with the "controller" remaining on a separate machine.
Supported Linux distributions/versions:
† Semmle recommends that you use solid-state drives (SSDs) rather than hard disk drives (HDDs) for all of the machines, in both the control pool and the work pool. It is strongly recommended that you use an SSD for the "controller" machine, as files are served from here to all other cluster machines.
‡ OpenJDK 8 or Oracle JDK 8 must be installed if you use Ubuntu 18.04.
During installation, upgrade and configuration processes, root access is required for each machine.
Virtual (for example, VMWare, Xen, KVM) or physical machines are both suitable for the pools of machines, but the term “virtual machines” is used exclusively below.
The computational power required for the work pool depends on the number of projects to analyze, their size, build times (for compiled languages such as Java), and the average commit frequency.
As this information is usually difficult to ascertain in advance, it makes sense to plan for an incremental deployment based on the following information:
- Minimum deployment size for LGTM Enterprise
- Hardware requirements at scale
- Incrementally adding capacity
LGTM Enterprise also requires access to the following third-party packages.
- Java JRE 8
- PostgreSQL 9.5 or higher
- RabbitMQ Server
- Minio release 2018-07-23T18-34-49 (bundled with LGTM)
- Solr 7.1.0 (bundled with LGTM)
- Python 2 (version 2.7 or higher will be installed)
By default, these are installed automatically on the relevant machines during the installation of LGTM Enterprise. With the exception of Minio and Solr, the exact versions that are installed depends on the latest version available for your Linux distribution. Any dependencies of these packages are also installed.
Access to third-party packages during installation
The simplest way to install LGTM Enterprise is to enable internet access and to run the installation script supplied with the application. This enables the installer to download and install the required packages from their official online package repositories using the standard utilities available in your Linux distribution. If you're using Red Hat Enterprise or CentOS, this will require access to the EPEL (Extra Packages for Enterprise Linux) repository. Once LGTM has been deployed, internet access can be closed down.
If internet access is not available, you can do either of the following:
Configure the machine so that it can access an internally hosted mirror that contains these package repositories and their dependencies. The installer will download and install the required packages from your internal mirror.
For installations on Red Hat or CentOS: Extract the third-party dependencies pack before you run the installer. Details for doing this are provided in the installation instructions.