All pages
Powered by GitBook
1 of 6

Installation

Installation Procedure

This section provides instructions for installing on-premise or cloud hosted deployments of Clarity LIMS v6.2. For assistance with installation steps, contact the Clarity LIMS Support team.

This document provides the steps required to install a new Clarity LIMS v6.2 instance to Oracle Linux/RedHat Enterprise Linux v8.8 and v8.9.

The installation procedure includes adding the Clarity LIMS repository, installing the Clarity LIMS RPM through yum commands, and configuring the installation through a series of configuration scripts.

Prerequisites

  • Your system meets the requirements listed in Technical Requirements.

  • You have installed and configured the required components. For more information, see Pre-Installation Requirements.

  • You have a database user and two empty schemas on your database server. The schemas are populated during configuration.

  • You have received the appropriate repository files from the Clarity LIMS Support team.

  • All standard OS security updates have been applied.

  • All instances of Clarity LIMS must have a purchased SSL/TLS certificate installed. Purchase the certificate before installation or upgrade. For instructions on installing purchased SSL/TLS certificates, see Install a Purchased SSL/TLS Certificate.

With the Oracle Linux/RedHat Enterprise Linux server, the following error messages can display when you perform the yum commands used to install Clarity LIMS:

Failed loading plugin "product-id": No module named 'urllib3'

Failed loading plugin "subscription-manager": No module named 'urllib3'

Failed loading plugin "upload-profile": No module named 'urllib3'

These messages do not affect the installation of Clarity LIMS. You can resolve these error messages by running the following command:

pip3 install urllib3==1.24.2

Step 1: Add the Clarity LIMS Repository

  1. Using scp/sftp, WinSCP, FileZilla, PSCP, or similar, copy the repository to the following location: /etc/yum.repos.d.

  2. Test the repo file with this command:

    yum --enablerepo=GLS_Clarity62 search ClarityLIMS-App

Step 2: Install Clarity LIMS

  1. Run the install command:

    yum --enablerepo=GLS_Clarity62 install ClarityLIMS-App
  2. Type y to download and install the Clarity LIMS RPM core components.

    NOTE: The installation of Clarity LIMS creates 3 operating system users:

    • glsai - User created to run the Automation Worker node

    • glsftp - User to access the SFTP file store

    • glsjboss - Runs the application server

    These users are created by the RPM installation process, and should not be created before starting the installation steps. The user home directories are created in the directory /opt/gls/clarity/users

    The operating system passwords for each of the above users should be set by the root user.

Step 3: Run Configuration Scripts

  1. As the glsjboss user, change directory to /opt/gls/clarity/config/pending with the following command:

    cd /opt/gls/clarity/config/pending
  2. Run the first script listed sequentially in the directory listing with the following bash command:

    bash /opt/gls/clarity/config/pending/05_configure_claritylims_secretutil.sh

    This script configures the Secret Utility password management tool so that secrets and passwords are accessible. It is recommended that you store application secrets in vault. If that is not possible, the configuration script supports file-based storage. For more information about the prompts, see Guide to Secret Management.

  3. Run the following script:

    bash /opt/gls/clarity/config/pending/20_configure_claritylims_platform.sh
  4. Run the next script to initialize the database and overwrite any existing data:

    bash /opt/gls/clarity/config/pending/26_initialize_claritylims_tenant.sh

    NOTE: This script requires that you enter the password for the glsftp user. Entering the password does not set the password for this user.

  5. If your database server is standalone or remote, update the /opt/gls/clarity/tomcat/current/lib/activity-management-ui-config.groovy file with the following code snippet.

    hibernate {
        isis {
            template {
                url="jdbc:postgresql://<Replace me: Remote DB IP>:<Replace me: Remote DB Port>/{0}"
            }
        }
    }

    NOTE: Substitute the Remote DB IP and Remote DB Port placeholders with the information for your server.

    If you do not update the script, log and database connection errors can occur.

  6. Change to the root user, and then run the following script in the sequence to configure RabbitMQ:

    bash /opt/gls/clarity/config/pending/32_root_configure_rabbitmq.sh
  7. As the root user, install the Apache proxy with the following script:

    bash /opt/gls/clarity/config/pending/40_root_install_proxy.sh

Step 4: Install Lablink

LabLink v2.4 is compatible with Clarity LIMS v6.2.

Before installing LabLink v2.4, make sure that a database named LabLink is created with the same database user as the Clarity LIMS database.

  1. Turn off all Clarity LIMS services using the following command:

    /opt/gls/clarity/bin/run_clarity.sh stop
  2. Install the LabLink RPM with the following yum command. Make sure that you have the correct repo enabled:

    yum --enablerepo=GLS_Clarity6 install ClarityLIMS-LabLink
  3. As the glsjboss user, run the pending initialization script using the following command:

    bash /opt/gls/clarity/config/pending/60_initialize_lablink.sh
  4. Restart all Clarity LIMS services using the following command:

    /opt/gls/clarity/bin/run_clarity.sh start
  5. Make sure that LabLink is accessible at https://<your-Clarity-FQDN>/lablink

Step 5: Start the System

Clarity LIMS includes the run_clarity.sh script. This script starts (or stops) all Clarity LIMS services (Elasticsearch, RabbitMQ, Search Indexing, Tomcat, httpd/Apache proxy, Automation Worker) in the required order, with one command.

Run the following script as the root user:

/opt/gls/clarity/bin/run_clarity.sh (start|stop|restart)

If an error occurs starting any service, subsequent services will not be started. Stop all services before trying to start them again.

Start the system as follows.

  1. Switch to the root user.

  2. Make sure that no Clarity LIMS services are running.

  3. Run the script with the following start command:

    /opt/gls/clarity/bin/run_clarity.sh start
  4. After the script has completed, all Clarity LIMS services should be ready for use.

If any services are running, the script exits and provides a list of services to stop. In this scenario, complete the following steps:

  1. Use the script with stop command to stop services.

  2. Open a supported browser window and make sure that you can access the Clarity LIMS client at the following URL: https://<your-Clarity-FQDN>/

Guide to Secret Management

Secret Utility (secretutil) is a password management tool used to store, manage, and retrieve passwords. Secret Utility returns the passwords in plain text.

The following sections describe the configuration of Secret Utility, which is installed as part of the Clarity LIMS-SecretUtil RPM.

Installing Integration Packages on Clarity LIMS

Integration Package
Clarity LIMS Version
Secret Util Mode
Installation Steps

Packages that require Clarity LIMS-SecretUtil.

Illumina Cloud Hosted v5.4 and later

Vault

Secret Utility would have been configured during installation of Illumina cloud hosted deployments of Clarity LIMS v5.4 and later.

For details on installing and configuring the integration package, see the related installation guide.

Packages that do not require Clarity LIMS-SecretUtil.

Illumina Cloud Hosted v5.4 and later

Vault

Clarity LIMS v5.4 and later do not support these integration packages.

Packages that require Clarity LIMS-SecretUtil.

Illumina Cloud Hosted/On Premise v5.3 and earlier

File

Clarity LIMS-SecretUtil installs Secret Utility. Before continuing with the configuration of the integration package, complete the following steps:

  1. In: /opt/gls/clarity/config/pending run the following script: 05_configure_claritylims_secretutil.sh

  2. Configure the secret utility in file-mode.

  3. Refer to Install/Upgrade Secret Management for Integration Modules for the passwords required to be configured in File mode.

Packages that do not require ClarityLIMS-SecretUtil.

Illumina Cloud Hosted/On Premise v5.3 and earlier

-

Refer to the integration package installation guide for more information on installing and configuring the integration package.

Configuration Script

If Secret Utility has not been configured, the 05_configure_claritylims_secretutil.sh script is created in the /opt/gls/clarity/config/pending folder.

To reconfigure Secret Utility:

  1. Remove the hidden file /opt/gls/clarity/tools/secretutil/.configured

  2. Run the Secret Utility configuration script as follows: /opt/gls/clarity/config/configure_claritylims_secretutil.sh

The following table describes the entries prompted by the configure_claritylims_secretutil.sh script.

Configuration Script Entries

Prompts
Default
Description

Enter required value for Secret Utility Mode.

vault

Configure the mode for Secret Utility. Possible values: vault, file

Enter required value for Clarity Tenant Hostname.

localhost

Vault mode only

Configure the Tenant hostname to be used as part of the vault path.

Enter required value for Vault Engine Path.

secret

Vault Mode only

Configure the secret engine path.

Enter required value for Vault URI.

Vault Mode only

Configure the Vault Server target.

Vault Enterprise (Y/N)

N

Vault Mode only

Configure whether the Vault Server is an enterprise version.

Enter required value for Vault Namespace.

Vault Enterprise only

Configure the Vault namespace.

Enter required value for Vault Authentication Mode.

Vault Mode only

Configure the authentication method. Possible values: token, approle

Enter required value for Vault Token.

Token Authentication only

Enter required value for Vault AppRole Role-Id.

AppRole Authentication only

Configure the AppRole role-id to use. Refer to Role ID noted during HashiCorp Vault configuration. (See AppRole)

Enter required value for Vault AppRole Secret-Id.

AppRole Authentication only

Configure the AppRole secret-id to use. Refer to Secret ID noted during HashiCorp Vault configuration. (See AppRole)

Enter required value for app.ftp.password

Enter required value for app.ldap.managerPass

Enter required value for app.rabbitmq.password

Enter required value for db.tenant.password

Enter required value for db.clarity.password

Enter required value for db.lablink.password

Enter required value for db.reporting.password

File Mode only

Sets the secrets (encrypted with CLARITYSECRET_ENCRYPTION_KEY env variable) into conf/secret.properties

Enter required value for Username for API user

apiuser

File Mode only

Sets the username of the API user to be used when applications require an API user.

Enter required password for API user

File Mode only

Sets the password for the API user configured.

Managing the passwords (Vault Mode)

If Secret Utility is configured as Vault Mode, the passwords are stored and retrieved from Vault Enterprise.

  • To use Secret Utility and perform the following steps, you must first remote into the instance before performing any of the following steps.

  • To use the Vault user interface (UI) and perform the following steps, you must have the appropriate role and access control list (ACL) policies.

Vault ACL Paths

The Vault ACLs control three main paths: Clarity, Integration, and Ops. If there is an attempt to write into a read-only path, secretutil.jar returns an error.

Clarity (read only)

  • Stores all passwords related to Clarity LIMS. The secrets/passwords are encrypted with CLARITYSECRET_ENCRYPTION_KEY env variable. See Configuration Script.

Integration (read write)

  • Stores all integration-related passwords and allows read and write access.

  • apiusers

    • Stores passwords that are used by packages and applications for API authentication (eg, the apiuser password).

    • Username is case sensitive.

    • For example, retrieve apiuser password from integration/apiusers/apiuser.

  • external.file.stores

    • Stores password of external file stores used by Clarity LIMS.

    • External file store is optional to the Clarity LIMS system.

    • For example, retrieve file store password from integration/external.file.stores/.password.

Ops

  • Stores secrets related to operations.

    • For Illumina cloud hosted deployments, Illumina manages this path.

    • This path is optional for on-premise customers.

Create a New Password

Using Secret Utility

The following command creates a new password:

java -jar /opt/gls/clarity/tools/secretutil/secretutil.jar [-h] [-n="namespace"] [-u="newValue"] "key"

  • When creating a new password for integration, specify the -n= integration option.

  • Make sure that the key uses a forward slash for nested secrets. For example, apiusers/apiuser

  • The same command is used for updating an existing password and creating a new password. Read the key you are planning to create to check whether it is an existing password.

Using Vault UI

  1. Log in to the Vault UI.

  2. Select the Key Value (KV) secret engine with the path instances.

  3. Look for the FQDN instance that you want to create the password for.

  4. Select the path where you want to create the new password, ie, clarity/integration/ops.

  5. Select Create Secret +.

  6. Under Path for this secret, enter the path for the new password, eg, app.ldap.managerPass.

  7. Under Version data:

    1. Enter 'value' into the key field.

    2. Enter the new password into the value field.

  8. Select Save.

Read an Existing Password

Using Secret Utility

Run the following command to create a new password:

java -jar /opt/gls/clarity/tools/secretutil/secretutil.jar "key"

Using Vault UI

  1. Log in to the Vault UI.

  2. Select the KV secret engine with the path instances.

  3. Look for the FQDN instance that you want to create the password for.

  4. Select the path where the existing password is located, ie, clarity/integration/ops.

  5. Click into the secret and view the password by selecting the peek icon.

Update an Existing Password

Using Secret Utility

Run the following command to update an existing password:

java -jar /opt/gls/clarity/tools/secretutil/secretutil.jar [-h] [-n="namespace"] [-u="newValue"] "key"

Using Vault UI

  1. Log in to the Vault UI.

  2. Select the KV secret engine with the path instances.

  3. Look for the FQDN instance that you want to create the password for.

  4. Select the path where the existing password is located, ie, clarity/integration/ops.

  5. Select into the secret.

  6. Select Create new version +.

  7. Under Version Data, enter the new password.

  8. Select Save.

Delete an Existing Password

NOTE: Confirm with the Illumina Support team before deleting passwords and secrets.

Using Secret Utility

Secret Utility does not support permanent deletion of a key by design.

Using Vault UI

  1. Log in to the Vault UI.

  2. Select the KV secret engine with the path instances.

  3. Look for the FQDN instance that you want to create the password for.

  4. Select the path, ie, clarity/integration/ops, to the location of the existing password.

  5. Select into the secret.

  6. Select Delete secret.

Managing the Passwords (File Mode)

If Secret Utility is configured as File mode, the passwords are encrypted and stored in /opt/gls/clarity/tools/secretutil/conf/secrets.properties. Encryption is based on the CLARITYSECRET_ENCRYPTION_KEY environment variable.

To manage the passwords and perform the following steps, you must first remote into the instance.

Create a New Password

Run the following command to create a new password:

java -jar /opt/gls/clarity/tools/secretutil/secretutil.jar [-h] [-n="namespace"] [-u="newValue"] "key"

  • If you are creating a new password for integration, specify the -n=integration option.

  • The same command is used for updating an existing password and creating a new password. Read the key you are planning to create to check whether it is an existing password.

Read an Existing Password

Run the following command to read an existing password:

java -jar /opt/gls/clarity/tools/secretutil/secretutil.jar "key"

Update an Existing Password

Run the following command to update an existing password:

java -jar /opt/gls/clarity/tools/secretutil/secretutil.jar [-h] [-n="namespace"] [-u="newValue"] "key"

Delete an Existing Password

NOTE: Confirm with the Illumina Support team before deleting passwords and secrets.

By design, Secret Utility does not support permanent deletion of a key. As an alternative, you can run the following steps.

  1. Open the secrets.properties file with an editor, eg, vim.

  2. Remove the key from the file and save the file.

Install/Upgrade Secret Management for Integration Modules

This section describes the installation steps required for installing Secret Utility and integration packages.

As of Clarity LIMS v5.4, the method used for managing passwords (secrets) for Clarity LIMS integration modules has changed.

The following diagram shows the installation steps required for installing Secret Utility and integration packages with Clarity LIMS v5.4 and later.

For details on Compatibility of Releases with Integration Modules, see Compatibility

  1. Install Clarity LIMS v6.2.

    • Install Clarity LIMS-App 6.2 and complete pending script.

    • Secret Utility (secretutil) is installed as part of Clarity LIMS-App 6.2 dependency, and the Secret Utility configuration is part of Clarity LIMS pending scripts.

  2. Install Secret Utility.

    • In the automated installation tooling for Clarity LIMS v6.2, the installation and configuration of Secret Utility is included. No further action is necessary.

    • For manual installation:

      1. Install Clarity LIMS-SecretUtil.

      2. Configure Secret Utility by running the following script: /opt/gls/clarity/config/pending/05_configure_claritylims_secretutil.sh.

        Refer to Guide to Secret Management for details on configuring Secret Utility.

  3. Check usage of custom API username.

    • Check for any needs for custom API username, if any (eg novaseq_user). The documentation for the integration package provides the requirements for API username.

      NOTE: In a typical installation, a default API username (apiuser) is used. It is not necessary to add the default apiuser username, because it is configured as part of Clarity LIMS v6.2 installation. If no custom API username is required, skip step 4 and proceed to step 5.

  4. Configure custom API username.

    • If a custom API username is not required, proceed to step 5.

    • If a custom API username is required, configure the user/password with Secret Utility as follows. Substitute the values enclosed in double quotes with your own values, keeping the double quotes.

      java -jar /opt/gls/clarity/tools/secretutil/secretutil.jar -n=INTEGRATION -u="password" "key"

      Example:

      java -jar /opt/gls/clarity/tools/secretutil/secretutil.jar -n=INTEGRATION -u="mypassword" "apiusers/novaseq_user"

    • For a custom api username, set the key to apiusers/{custom api username}

  5. Install integration package.

    There is no change to the installation of the integration package. Follow existing installation instructions.

    NOTE:

    The new configuration script in the new integration package retrieves passwords directly from Secret Utility.

    For IAP access token and BSSH access token, follow the existing setup guide. There is no change in the configuration step.

Change the Clarity LIMS Hostname

The core Clarity LIMS product includes the rename_claritylims_hostname.sh script, which allows you to change the hostname to which Clarity LIMS responds.

Prerequisites & considerations

Prerequisites

  • Clarity LIMS must be fully installed and configured. If it is not, the script instructs you to complete the installation.

  • The script stops all Clarity LIMS services. Make sure that all automation jobs are complete.

  • If you are not using a wild card SSL Certificate, purchase a certificate for the new hostname.

  • Update the hostname returned by the operating system to match the new name. Refer to Pre-script steps for more information.

  • Running the renaming script requires root access.

Considerations

  • The script does not update the Automation Worker installation. After you have completed the renaming steps, you must reconfigure all local and remote Automation Workers.

  • You might need to reconfigure additional services, such as the Reporting and Sequencing services.

We recommend that you back up the database before performing the following renaming steps.

Settings changed

The following table lists the settings changed by the rename_claritylims_hostname.sh script.

Property
Global
Description
Location

namingProviderHost

Yes

Configures appropriate endpoint for the Automation Worker

/opt/gls/clarity/tomcat/current/lib/ activity-management-ui-config.groovy

api.uri

Per tenant setting

Base URI used by integrations for API calls

Property Table

ftp.host

Per tenant setting

Location of FTP host for this tenant*

Property Table

ServerName

Per tenant setting

Server name reference in lookup database

Lookup Database

*The ftp.host is only updated if it matches the previous IP address/hostname. This intended behavior accounts for the scenario in which the ftp host is on a different server.

Changing the LIMS hostname

Pre-script steps

  1. Change the internal hostname

    Before running the rename_claritylims_hostname.sh script, change the internal hostname for the instance - that is, /etc/hosts and related areas. There is no need to change any other LIMS-related components.

    The new internal hostname will be used in the renaming process.

    • To verify the internal hostname, use the following command:

      hostname -f

      NOTE: If the hostname command does not return the correct new name, consult with your IT department to correct the name.

  2. Verify SSL Certificate path:

    The script may prompt you for the SSL Certificate path. Be sure to have that ready.

Running the script

  1. Use the following command to change to the root user:

    sudo su -
  2. Navigate to the /opt/gls/clarity/config directory.

  3. Run the rename_claritylims_hostname.sh script:bash rename_claritylims_hostname.sh

  4. If prompted for your SSL Certificate path, enter this information.

  5. The script prompts you to confirm that you have changed the internal hostname.

    • If you enter no, you will be prompted to manually change the hostname (output shown below).

      [root@qalocal config]# bash rename_claritylims_hostname.sh
      Does your internal hostname match the new Clarity server hostname?: n
      Please change your internal hostname to match the hostname you are passing to this script to ensure Clarity can connect to it.
       Do not change any Clarity related components.
    • If you enter yes, the script proceeds to modify Clarity LIMS-related components to use the new hostname.

  6. When the renaming is complete, the script prompts you to restart Clarity LIMS by running the run_clarity.sh script:

    /opt/gls/clarity/bin/run_clarity.sh start
  7. When all Clarity LIMS services have restarted, make sure that the hostname has been changed successfully. Complete the following steps:

    • Connect to all system components.

    • Log in and test the LIMS user interface in your web browser.

Update Server Passwords and Database Connection Details

This document describes the steps required to update the Clarity LIMS application configuration.

Two levels of user passwords are created in the Clarity LIMS system: one at the operating system level and one at the Clarity LIMS level.

Following are details on the user passwords, instructions for changing them, and instructions for updating Clarity LIMS with the new database connection details.

The following steps are only required if the passwords for glsftp and/or apiuser have been changed.

Update Operating System User Passwords

The user passwords created at the operating system level are for the glsai, glsjboss, and glsftp users.

  • glsai and glsjboss users:

    • These users have no configuration associated with them.

    • You may change their passwords at any time.

  • glsftp user:

    • After installation of Clarity LIMS, you can change this password. However, you must also update it in the file/vault secret store, using the Secret Management Util tool.

To change the glsftp password after installing Clarity LIMS, using SecretUtil:

  1. Change the glsftp user's password on the server.

  2. Log in to the server as the root user.

  3. Stop Clarity LIMS using the following command:

    /opt/gls/clarity/bin/run_clarity.sh stop
  4. Go to /opt/gls/clarity/tools/secretutil.

  5. Update the password in the secret store.

    • For vault-based secret storage, use either the Vault command line interface (CLI) or Vault user interface (UI) to update the password.

    • For file-based secret storage, use Secret Management Util to update the password as follows:

      $ java -jar /opt/gls/clarity/tools/secretutil/secretutil.jar -u="new-password" app.ftp.password
  6. Start Clarity LIMS using the following command:

    /opt/gls/clarity/bin/run_clarity.sh start

Update Clarity LIMS User Passwords

The user passwords created at the Clarity LIMS level are for the admin, facility, and apiuser users.

  • admin and facility users:

    • These users have no configuration associated with them.

    • You may change their passwords at any time.

  • apiuser user:

    • After installation of Clarity LIMS, you can change this password. However, you must also update it in the file/vault secret store, using the Secret Management Util.

To change the apiuser password after installing Clarity LIMS**:**

  1. Check for any remote Automation Workers, and take note of their locations in your network. You will need to restart these after changing the password.

  2. Log in to the server as the root user.

  3. Stop Clarity LIMS using the following command:

    /opt/gls/clarity/bin/run_clarity.sh stop
  4. Go to /opt/gls/clarity/tools/secretutil.

  5. Update the password in the secret store

    • For vault-based secret storage, use either the Vault command line interface (CLI) or Vault user interface (UI) to update the password.

    • For file-based secret storage, use Secret Management Util to update the password as follows:

      $ java -jar /opt/gls/clarity/tools/secretutil/secretutil.jar -n=integration -u="new-password" "apiusers/apiuser"
  6. Start Clarity LIMS using the following command:

    /opt/gls/clarity/bin/run_clarity.sh start

Update Database Connection Details

In some circumstances (such as security breaches/compromises), the database connection details (eg, database password) are updated, which prevents Clarity LIMS from connecting to the database. You can correct this issue by updating Clarity LIMS with the new database connection details as follows.

  1. Check for any remote Automation Workers.

  2. Update the existing tenant with the new details.

  3. Restart any Automation Workers.

To update database connection details:

  1. Check for any remote Automation Workers, and take note of their locations in your network.

  2. Log in to the server as the root user.

  3. Stop Clarity LIMS using the following command:

    /opt/gls/clarity/bin/run_clarity.sh stop
  4. Go to /opt/gls/clarity/tools/secretutil.

  5. Update existing tenant with new details.

    • For vault-based secret storage, use either the Vault CLI or Vault UI to update the password.

    • For file-based secret storage, use the Secret Management Util to update the database password as the root user.

    $ java -jar /opt/gls/clarity/tools/secretutil/secretutil.jar -u="db-password" db.<db-name>.password
  6. Start Clarity LIMS using the following command:

    /opt/gls/clarity/bin/run_clarity.sh start