14. Manager 8.1.5 to 8.4.4 Cluster and Load Balancer Upgrade Guide for Linux (non-Docker)

In this guide, we will run you through step by step to upgrade qTest Manager from v8.1.5 to v8.4.4 on 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 upgrade qTest Manager, make sure following things are done:

  • Your machine needs to satisfy qTest Manager's recommended hardware requirements
  • Please follow this instruction to back up data prior to the upgrade process
  • Upgrade your PostgreSQL DB server from v9.4 to v9.5 using this instruction
  • Upgrade your Java JDK to v8
  • Prerequisite applications must be running prior to the upgrade process
    • PostgreSQL v9.5
    • RabbitMQ v3.5.4
    • Redis v2.8.19

Upgrade qTest Manager

Overview

In the load balancing model, there are one Notification node and multiple Application nodes. You will need to upgrade all of them first. After the upgrade process completes, restart them.

The upgrade process includes 4 steps as below:

  1. Shut down the nodes
  2. Upgrade the Notification node
  3. Upgrade all of the Application nodes
  4. Start the nodes

Shut down the nodes

You will need to shut down all Application nodes first and then shut down the Notification node.

  1. Access to the server where the Notification node was installed. Log in as root user on your command shell
    $ sudo su
    		
  2. Access to the installation directory of your current qTest (v8.1.5). In this example, we use /usr/local/qtest-linux-8.1.5
    # cd /usr/local/qtest-linux-8.1.5
    		
  3. Shut down qTest Manager
    # ./qtest_shutdown.sh
    		

Upgrade the Notification node

  1. Download qTest Manager's installation package
    # wget https://qtest-storage.s3.amazonaws.com/linux-package/8.4/qtest-linux-8.4.4.tar.gz
  2. Once the installation is completely downloaded, extract it
    # tar -zxf qtest-linux-8.4.4.tar.gz
    		
  3. Access to the extracted directory
    # cd qtest-linux-8.4.4/
    		
  4. View file qtest_env.sh
    # vim qtest_env.sh
    		

    Edit the following information. Please input the same information as you configured qTest Manager v8.1.5. You can refer to file qtest_env.sh under v8.1.5's installation directory

    • Specify information to connect to your PostgreSQL server; including its host, port, and credentials. Remember to set DB_MODE=upgrade
      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. 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 the notification node
      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 attachment and search index. 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 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]
      				
  5. Upgrade the Notification node
    # ./qtest_setup.sh
    		
    Build Complete

Upgrade Application nodes

You may have multiple application nodes. You will need to repeat the following steps on all them.

  1. Download qTest Manager's installation package
    # wget https://qtest-storage.s3.amazonaws.com/linux-package/8.4/qtest-linux-8.4.4.tar.gz
  2. Once the installation is completely downloaded, extract it
    # tar -zxf qtest-linux-8.4.4.tar.gz
    		
  3. Access to the extracted directory
    # cd qtest-linux-8.4.4/
    		
  4. View file qtest_env.sh
    # vim qtest_env.sh
    		

    Edit the following information. Please input the same information as you configured qTest Manager v8.1.5. You can refer to file qtest_env.sh under v8.1.5's installation directory

    • Specify information to connect to your PostgreSQL server; including its host, port, and credentials. Remember to set DB_MODE=upgrade
      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. 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
      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 attachment and search index. 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]
      				
  5. Upgrade the Application node
    # ./qtest_setup.sh
    		
    Build Complete

Start the nodes

After all of your qTest Manager has been upgraded, please start all of them. Remember to start the Notification node first and then the Application nodes using the following commands:

  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. Restart qTest Manager
    # ./qtest_start.sh
    		
    Start