Menu

Manager 8.4.4 Cluster and Load Balancer Installation Guide for Linux (non-Docker)

In this guide, we will run you through step by step to install qTest Manager v8.4.4 on a multiple CentOS/Ubuntu machines. Please go through the guide below thoroughly before starting your installations. It is recommended to use copy & paste for the scripts.

Before you begin

Before you install qTest Manager, make sure following things are done:

  • Your machine needs to satisfy qTest Manager's recommended hardware requirements
  • Prerequisite applications must be installed and running prior to upgrading qTest
    • PostgreSQL v9.5
    • RabbitMQ v3.5.4
    • Redis v2.8.19
    • Java JDK v8

Install Prerequisite Softwares

Please follow these instructions to install the prerequisite app(s) as mentioned above

Install qTest Manager with Clustering Model

Overview

Using the clustering model, you will need to install and configure a Notification node and an Application node qTest Manager using the same qTest Manager's installation package.

To deploy qTest Manager on multiple servers, you will only need to install the highlighted components in the diagram below. We will be using it as a sample deployment model in this article. However, you can customize it base on your organization's needs.

Clustering

  • Server 1: The Notification node is installed on the same server with prerequisite apps, including Redis and Rabbit MQ. It connects to Server 2
  • Server 2: PostgreSQL is installed on this server
  • Server 3: The Application node is deployed on this server. It connects to the Server 1 and Server 2
  • A shared network drive is configured on Server 1. It should be accessible from the Notification node as well as the Application node to store attachments and search index
  • Notification node and application node must use the same PostgreSQL database schema and RabbitMQ virtual host
  • Users can access to qTest Manager via the Application node's URL

The installation process includes the following steps:

  1. Install the Notification node
  2. Install the Application node
  3. Start the nodes
  4. Configure your qTest Manager instance

Install the Notification node

  1. Access to your server. Log in as root user on your command shell
    $ sudo su
    
  2. Download qTest Manager's installation package
    # wget https://qtest-storage.s3.amazonaws.com/linux-package/8.4/qtest-linux-8.4.4.tar.gz
  3. Once the installation package is completely downloaded, extract it
    # tar -zxf qtest-linux-8.4.4.tar.gz
    
  4. Access to the extracted directory
    # cd qtest-linux-8.4.4/
    
  5. View file qtest_env.sh
    # vim qtest_env.sh
    
    Edit the following information:
    • Specify information to connect to your PostgreSQL server; including its host, port, credentials to log in and create qTest Manager's schema. Remember to set DB_MODE=install
      DB_HOST=[PostgreSQL server's host name or IP]
      DB_PORT=[PostgreSQL server's port]
      DB_USER=[username to log in to PostgreSQL]
      DB_PASSWD=[password to log in to Postgres]
      DB_NAME=[schema name of qTest database]
      DB_MODE=install
      
    • Specify information to connect to your PostgreSQL server; including its host, port, and credentials to log in and create Poseidon's schema. Remember to set POSEIDON_DB_MODE=install
      POSEIDON_DB_HOST=[PostgreSQL server's host name or IP]
      POSEIDON_DB_PORT=[PostgreSQL server's port]
      POSEIDON_DB_USER=[username to log in to PostgreSQL]
      POSEIDON_DB_PASSWD=[password to log in to Postgres]
      POSEIDON_DB_NAME=[schema name of Poseidon database]
      POSEIDON_DB_MODE=install
      
    • Specify your Web configurations include the ports to connect to the notification node
        IMPORTANT: You will need to check if the ports are being used by other applications on the server and allow them to be connected through firewall using these instructions
      1. Check which ports are being used
      2. Allow network ports to be connected through firewall - For CentOS
      3. Allow network ports to be connected through firewall - For Ubuntu
      WEB_PORT=[HTTP port]
      WEB_HTTPS_PORT=[HTTPS port]
      WEB_ADMIN_PORT=[Web admin's HTTP port]
      WEB_ADMIN_AJP_PORT=[Web Admin's AJP port]
      
    • Choose whether SSL connection is enabled. If yes, certificate file and private key file are required
      ENABLE_SSL=true
      CERT_FILE=[required - specify the location of your certificate file]
      CA_CERT_FILE=[optional - specify the location of your chain certificate file]
      PK_FILE=[required - specify the location of your private key]
      PK_PASSWD=[optional - specify your private key password]
      
    • Configure directories for attachments and search index
        IMPORTANT: Remember that these directories should be located in a shared network drive. All nodes must use the same directories and be able to create files under them
      ATTACHMENT_DIR=[directory which stores attachments]
      SEARCH_DIR=[directory which stores search index]
      
    • Configure the Notification node
      NOTIFICATION_NODE=true
      NOTIFICATION_EXTERNAL=false
      NOTIFICATION_EXTERNAL_URL=[Leave this blank]
      NOTIFICATION_INTERNAL_URL=[Leave this blank]
      
    • Specify the informaton to connect to RabbitMQ server
      MQ_HOST=[RabbitMQ server's host name or IP]
      MQ_PORT=[RabbitMQ server's port]
      MQ_STOMPT_PORT=[RabbitMQ server's STOMP port]
      MQ_VHOST=[qTest Manager's virtual host name in RabbitMQ]
      MQ_USER=[Username to connect to the above virtual host]
      MQ_PASSWD=[Password to log in to the above virtual host]
      
    • Specify the information to connect to Redis server
      CACHE_EXTERNAL=true
      CACHE_ENDPOINT=[Redis server's host name or IP]
      CACHE_PORT=[Redis server's IP]
      
    • Set Poseidon's external URL = [protocol]://[Notification_host]:[Notification_port]/poseidon, in which:
      • [protocol]: it is https if SSL is enabled. Otherwise, it is http
      • [Notification_host]: host name or IP of the server where the Notication node is installed
      • [Notification_port]: http or https port of the Notification node
      POSEIDON_EXTERNAL=true
      POSEIDON_EXTERNAL_URL=[use the URL as described above]
      POSEIDON_TOKEN=[do not change]
      
  6. Install the Notification node
    # ./qtest_setup.sh
    
    Build Complete

Install the Application node

  1. Access to your server. Log in as root user on your command shell
    $ sudo su
    
  2. Download qTest Manager's installation package
    # wget  https://qtest-storage.s3.amazonaws.com/linux-package/8.4/qtest-linux-8.4.4.tar.gz
    
  3. Once the installation package is completely downloaded, extract it
    # tar -zxf qtest-linux-8.4.4.tar.gz
    
  4. Access to the extracted directory
    # cd qtest-linux-8.4.4/
    
  5. View file qtest_env.sh
    # vim qtest_env.sh
    
    Edit the following information:
    • Specify information to connect to your PostgreSQL server; including its host, port, and credentials to log in to qTest Manager's schema. Since the database schema has been created when you deploy the Notification node, remember to set DB_MODE=upgrade for the Application node
      DB_HOST=[PostgreSQL server's host name or IP]
      DB_PORT=[PostgreSQL server's port]
      DB_USER=[username to log in to PostgreSQL]
      DB_PASSWD=[password to log in to Postgres]
      DB_NAME=[schema name of qTest database]
      DB_MODE=upgrade
      
    • Specify information to connect to your PostgreSQL server; including its host, port, and credentials to log in to Poseidon's schema. Remember to set POSEIDON_DB_MODE=upgrade
      POSEIDON_DB_HOST=[PostgreSQL server's host name or IP]
      POSEIDON_DB_PORT=[PostgreSQL server's port]
      POSEIDON_DB_USER=[username to log in to PostgreSQL]
      POSEIDON_DB_PASSWD=[password to log in to Postgres]
      POSEIDON_DB_NAME=[schema name of Poseidon database]
      POSEIDON_DB_MODE=upgrade
      
    • Specify your Web configurations include the ports to connect to this Application node
        IMPORTANT: You will need to check if the ports are being used by other applications on the server and allow them to be connected through firewall using these instructions
      1. Check which ports are being used
      2. Allow network ports to be connected through firewall - For CentOS
      3. Allow network ports to be connected through firewall - For Ubuntu
      WEB_PORT=[HTTP port]
      WEB_HTTPS_PORT=[HTTPS port]
      WEB_ADMIN_PORT=[Web admin's HTTP port]
      WEB_ADMIN_AJP_PORT=[Web admin's AJP port]
      
    • Choose whether you want to enable SSL connection. If SSL is enabled, certificate file and private key file are required
      ENABLE_SSL=true
      CERT_FILE=[required - specify the location of your certificate file]
      CA_CERT_FILE=[optional - specify the location of your chain certificate file]
      PK_FILE=[required - specify the location of your private key]
      PK_PASSWD=[optional - specify your private key password]
      
    • Configure directories for attachments and search index
        IMPORTANT: Remember that these directories should be located in a shared network drive. All nodes must use the same directories and be able to create files under them
      ATTACHMENT_DIR=[directory which stores attachment]
      SEARCH_DIR=[directory which stores search index]
      
    • Configure the connection to the Notification node
      NOTIFICATION_NODE=false
      NOTIFICATION_EXTERNAL=true
      NOTIFICATION_EXTERNAL_URL=[full URL to access the notification server, including TCP port, from the Internet]
      NOTIFICATION_INTERNAL_URL=[full URL to access the notification server, including TCP port, from the internal network]
      
    • Specify the informaton to connect to RabbitMQ server
      MQ_HOST=[RabbitMQ server's host name or IP]
      MQ_PORT=[RabbitMQ server's port]
      MQ_STOMPT_PORT=[RabbitMQ server's STOMP port]
      MQ_VHOST=[qTest Manager's virtual host name in RabbitMQ]
      MQ_USER=[Username to connect to the above virtual host]
      MQ_PASSWD=[Password to log in to the above virtual host]
      
    • Specify the information to connect to Redis server
      CACHE_EXTERNAL=true
      CACHE_ENDPOINT=[Redis server's host name or IP]
      CACHE_PORT=[Redis server's port]
      
    • Set Poseidon's external URL = [protocol]://[Notification_host]:[Notification_port]/poseidon, in which:
      • [protocol]: it is https if SSL is enabled. Otherwise, it is http
      • [Notification_host]: host name or IP of the server where the Notication node is installed
      • [Notification_port]: http or https port of the Notification node
      POSEIDON_EXTERNAL=true
      POSEIDON_EXTERNAL_URL=[use the URL as described above]
      POSEIDON_TOKEN=[do not change]
      
  6. Install the Application node
    # ./qtest_setup.sh
    
    Build Complete

Start the nodes

After all of your nodes have been installed, start the Notication node first and then the Application node:

  1. Access to the installation directory of qTest Manager. In this example, we use /usr/local/qtest-linux-8.4.4
    # cd /usr/local/qtest-linux-8.4.4
    
  2. Start qTest Manager
    # ./qtest_start.sh
    
    Start

Configure qTest Manager

Access to the Notification node to configure your qTest Manager instance and import license file to activate your account. Please follow this guide: Configure Manager.

  • If SSL is disabled: http://[notification_node_ip]:[WEB_PORT]
  • If SSL is enabled: https://[notification_node_ip]:[WEB_HTTPS_PORT]

Similarly, you will also need to import license file for the application node:

  • If SSL is disabled: http://[application_node_ip]:[WEB_PORT]
  • If SSL is enabled: https://[application_node_ip]:[WEB_HTTPS_PORT]

Install qTest Manager with Load Balancing Model

Overview

In case your team size is large (more than 1000 total users or 250 concurrent users), please consider the load balancing model as below. The model is quite the same as the clustering model, but you can add more Application nodes and then configure a load balancer.

Load balancing

  • Server 1: the Notification node is installed on the same server with Prerequisite applications, including Redis and RabbitMQ
  • Server 2: PostgreSQL server
  • Server 3: The Application node as in the clustering model
  • Server 4: This is the additional Application node. Installing the Application node is the same as instructed in the clustering model
  • A shared network drive is configured on Server 1. It should be accessible from the Notification node as well as all Application nodes to store attachments and search index
  • Notification node and Application nodes must use the same PostgreSQL database schema and RabbitMQ virtual host
  • After all of the nodes have been installed, please restart the Notification node first and then all of the Application nodes
  • You will need to configure the Application nodes with your Load Balancer. You can use any load balancing tools or services which are being used in your organization. We do not provide the instruction to configure the Load Balancer
  • In case you want to configure the Notification node in your Load Balancer, it should not share the same URL with the Application nodes
  • Your team members can access to qTest Manager via the URL to the Application nodes as configured in the load balancer

Configure qTest Manager

Access to the Notification node to configure your qTest Manager instance and import license file to activate your account. Please follow this guide: Configure Manager.

  • If SSL is disabled: http://[notification_node_ip]:[WEB_PORT]
  • If SSL is enabled: https://[notification_node_ip]:[WEB_HTTPS_PORT]

Similarly, you will also need to import license file for each of the application nodes:

  • If SSL is disabled: http://[application_node_ip]:[WEB_PORT]
  • If SSL is enabled: https://[application_node_ip]:[WEB_HTTPS_PORT]
Subscribe To Our Blog
Powered by Zendesk