Menu

Manager 9.8.3 OP Load Balancing Installation Guide for Docker

Overview

To request assistance with upgrading or to obtain the links to self-upgrade, please click here to fill out the Upgrade Request Form.

In this guide, we'll run you through installing qTest Manager 9.8.1 using Docker on separate CentOS/Ubuntu machines with a Load Balancer.

This article only demonstrates how to deploy a load balancer for qTest Manager.

  • Read this article to deploy qTest Sessions with load balancing.

New for This Release: Enhanced Security Enablement for Sessions and Insights

During an attempted CSRF attack, user credentials may potentially be inherited and then used to maliciously perform undesirable actions, usually affecting a change of state of server. Please note that this does not result in any data theft.

Sessions Information needed for Enablement

  • qTest Managers HTTP or HTTPS Port
  • URL to access qTest Manager outside of this machine
  • qTest Sessions HTTP or HTTPS Port
  • URL to access qTest Sessions outside of this machine
  • External Defect Tracker domain i.e. JIRA

3 Insights features are impacted by this new security configuration:

  • embed reports/dashboard
  • shareable URL dashboard
  • rapid dashboard 

Insights Information needed for Enablement

Insights allow users to generate an HTML template and embed it into an external website ex: Confluence. Therefore, the domain of this website need to be included in the Whitelist domain. SSL must be enabled. 

  • qTest Managers HTTP or HTTPS Port
  • URL to access qTest Manager outside of this machine
  • qTest Insights HTTP or HTTPS Port
  • URL to access qTest Insights outside of this machine
  • External Reporting domain i.e. Confluence

Before you Begin

What is included in the Docker-Deployment-4.10 package?

The qTest Docker-Deployment-4.10 includes the following applications. Among those, qTest Manager is the required application, simply specify the other applications you want to deploy (eligible applications are up to your license.)

  • qTest Manager 9.8.3 includes qtest and its prerequisite applications: postgres, qtestlb
  • qTest Session 4.2.8 includes Session and its prerequisite applications: postgres, qtestlb
  • qTest Parameters 2.2.4 includes Parameters and its prerequisite applications: postgres, parameterslb
  • qTest Insights 1.21.12 includes Insights and its prerequisite applications: postgres, insightslb, insightsetl
  • qTest Launch 1.5.3 includes Launch and its prerequisite applications: postgres, launchlb
  • qTest Pulse 9.2.2 includes Pulse and its prerequisite applications: postgres, pulselb
  • qTest Scenario 3.2.0 includes Pulse and its prerequisite applications: scenariolb

Install qTest Manager with Load Balancer

The sample image below tries to demonstrate how to configure qTest Manager with a load balancer for 4 machines:

  • Machine 1: considered as a cluster, deploy qTest Manager's prerequisite app: postgres, elasticsearch, and the shared network drive to store attachments
  • Machine 2: deploy qTest Manager 9.8.3 (qtest)
  • Machine 3: deploy qTest Manager 9.8.3 (qtest)
  • Machine 4: deploy qTest Manager's load balancer (qtestlb)

NOTE: Every machine in the cluster requires the following ports to be open: 53 and 6783

manager_lb_diagram-q419.png 

Deployment Instructions

Access each of the 4 machines where Docker has been installed using root, or a user which has been added to the Docker user group:

  • Repeat the steps below in all 4 machines.
  • Then configure each machine in sequence (Machine 1, 2, 3, 4)

NOTE:

  • Pre-requisite applications of qTest Manager should be deployed in a separate machine rather than in the same machine with qTest Manager (qtest.)
  • The load balancer application (qtestlb) should be deployed after all other apps get deployed.

Download Docker-Deployment-4.10 Package

$ wget <ENTER DOWNLOAD LINK HERE>

Extract the Package

$ tar -zxf docker-deployment-4.10.tar.gz

Access the Package Directory

 $ cd docker-deployment-4.10

 

Machine 1 (the cluster)

Deploy postgres and elasticsearch into Machine 1

  • Specify prerequisite apps: postgres, elasticsearch
    $ ./configure --apps "postgres elasticsearch"

Modify the Config File

Modify the configure file to ensure the "datadir" variable point to a shared directory where all 4 machines are able to access.

$ vim profiles/default.in

The vm.max_map_count kernel setting needs to be set to at least 262144 for ElasticSearch to work properly

$ sysctl -w vm.max_map_count=262144

Start the Deployment

$ ./startup

Set qTest Manager as a Linux Daemon

$ ./shutdown
$ ./install
$ systemctl start qtest

Machine 2

Deploy qtest (qTest Manager 9.8.3) with HTTP into Machine 2

  • qtest-url: IP of machine 4 (the load balancer)
  • qtest-http: qtest port of machine 4 (the load balancer)
  • cluster: IP of machine 1
  • apps: qtest
$ ./configure --qtest-url "http://<IP of machine 4>:<qtest port of machine 4>" --qtest-http "<qtest port of machine 4>" --cluster "<IP of machine1>" --apps "qtest"
  1. Modify the configure file to ensure the "datadir" variable point to a shared directory where all 4 machines are able to access.
    $ vim profiles/default.in
  2. Start the deployment.
    $ ./startup
  3. After the above command completes successfully, set up qTest Manager as Linux Daemon and start the service.
$ ./shutdown
$ ./install
$ systemctl start qtest

Deploy qtest (qTest Manager 9.8.3) with HTTPS into Machine 2

  • Specify path to ssl-key, ssl-cert, ssl-ca
  • qtest-url: IP of machine 4
  • qtest-https: qtest https port of machine 4
  • cluster: IP of machine 1
  • apps: qtest
$ ./configure --qtest-url "https://<IP of machine 4>:<qtest https port of machine 4>" --qtest-https "<qtest https port of machine 4>" --cluster "<IP of  machine1>" --apps "qtest"
  1. Modify the configure file to ensure the "datadir" variable point to a shared directory where all 4 machines are able to access it.
    $ vim profiles/default.in
  2. Start the deployment.
    $ ./startup
  3. After the above command completes successfully, set up qTest Manager as Linux Daemon and start the service.
    $ ./shutdown
    $ ./install
    $ systemctl start qtest

Enhanced Security Option for Sessions and Insights

During an attempted CSRF attack, user credentials may potentially be inherited and then used to maliciously perform undesirable actions, usually affecting a change of state of server. Please note that this does not result in any data theft. SSL must be enabled. 

Enter this command for Sessions:

$ ./configure --sessions-security-csrf-trusted-source-pattern "<qtest-manager-domain>[:port]|<qtest-sessions-domain>[:port]"

If you are configuring an external configuration, e.g JIRA, then the JIRA URL should be whitelisted:

$ ./configure --sessions-security-csrf-trusted-source-pattern "<qtest-manager-domain>[:port]|<qtest-sessions-domain>[:port]|<jira-domain>"

For example:

$ ./configure --sessions-security-csrf-trusted-source-pattern "qtest-manager.com|sessions.com|jira.atlassian.net"

Enter this command for Insights:

$ ./configure --insights-security-csrf-trusted-source-pattern "<Whitelist domains>"

If you are configuring an external configuration, e.g Confluence, then the Confluence URL should be whitelisted:

$ ./configure --insights-security-csrf-trusted-source-pattern "<qtest-manager-domain>[:port]|<qtest-insights-domain>[:port]|<confluence-domain>"

For example:

$ ./configure --insights-security-csrf-trusted-source-pattern "qtest-manager.com|insights.com|confluence.atlassian.net"

Machine 3

Deploy qtest (qTest Manager 9.8.3) with HTTP into Machine 3

  • qtest-url: IP of machine 4 (the load balancer)
  • qtest-http: qtest port of machine 4 (the load balancer)
  • cluster: IP of machine 1
  • apps : qtest
$ ./configure --qtest-url "http://<IP of machine 4>:<qtest port of machine 4>" --qtest-http "<qtest port of machine 4>" --cluster "<IP of Machine 1>" --apps "qtest"
  1. Modify the configure file to ensure the "datadir" variable point to a shared directory where all 4 machines are able to access.
    $ vim profiles/default.in
  2. Start the deployment.
    $ ./startup
  3. After the above command completes successfully, set up qTest Manager as Linux Daemon and start the service.
    $ ./shutdown 
    $ ./install
    $ systemctl start qtest

 

Deploy qtest (qTest Manager 9.8.3) with HTTPS into Machine 3

  • Specify path to ssl-key, ssl-cert, ssl-ca
  • qtest-url: IP of machine 4
  • qtest-https: qtest https port of machine 4
  • cluster: IP of machine 1
  • apps: qtest
$ ./configure --qtest-url "https://<IP of machine 4>:<qtest https port of machine 4>" --qtest-https "<qtest https port of machine 4>" --cluster "<IP of Machine1>" --apps "qtest"
  1. Modify the configure file to ensure the "datadir" variable point to a shared directory where all 4 machines are able to access.
    $ vim profiles/default.in
  2. Start the deployment.
    $ ./startup
  3. After the above command completes successfully, set up qTest Manager as Linux Daemon and start the service.
    $ ./shutdown 
    $ ./install
    $ systemctl start qtest

Enhanced Security Option for Sessions and Insights

During an attempted CSRF attack, user credentials may potentially be inherited and then used to maliciously perform undesirable actions, usually affecting a change of state of server. Please note that this does not result in any data theft. SSL must be enabled. 

Enter this command for Sessions:

$ ./configure --sessions-security-csrf-trusted-source-pattern "<qtest-manager-domain>[:port]|<qtest-sessions-domain>[:port]"

If you are configuring an external configuration, e.g JIRA, then the JIRA URL should be whitelisted:

$ ./configure --sessions-security-csrf-trusted-source-pattern "<qtest-manager-domain>[:port]|<qtest-sessions-domain>[:port]|<jira-domain>"

For example:

$ ./configure --sessions-security-csrf-trusted-source-pattern "qtest-manager.com|sessions.com|jira.atlassian.net"

Enter this command for Insights:

$ ./configure --insights-security-csrf-trusted-source-pattern "<Whitelist domains>"

If you are configuring an external configuration, e.g Confluence, then the Confluence URL should be whitelisted:

$ ./configure --insights-security-csrf-trusted-source-pattern "<qtest-manager-domain>[:port]|<qtest-insights-domain>[:port]|<confluence-domain>"

For example:

$ ./configure --insights-security-csrf-trusted-source-pattern "qtest-manager.com|insights.com|confluence.atlassian.net"

Machine 4 (load balancer)

Deploy qtestlb with HTTP into Machine 4

  • qtest-url: IP of machine 4 (the load balancer)
  • qtest-http: qtest port of machine 4 (the load balancer)
  • cluster: IP of machine 1
  • apps: qtestlb
$ ./configure --apps "qtestlb" --qtest-url "http://<IP of machine 4>:<qtest port of machine 4>" --qtest-http "<qtest port of machine 4>" --cluster "<IP of Machine 1>"
  1. Modify the configure file to ensure the "datadir" variable point to a shared directory where all 4 machines are able to access it.
    $ vim profiles/default.in
  2. Start the deployment.
    $ ./startup
  3. After the above command completes successfully, set up qTest Manager as Linux Daemon and start the service.
    $ ./shutdown 
    $ ./install
    $ systemctl start qtest

 

Deploy qtestlb with HTTPS into Machine 4

  • Specify path to ssl-key, ssl-cert, ssl-ca
  • qtest-url: IP of machine 4
  • qtest-https: qtest https port of machine 4
  • cluster: IP of machine 1
  • apps: qtestlb
$ ./configure --apps "qtestlb" --ssl-key "<SSL Key>" --ssl-cert "<SSL Cert>" --ssl-ca "<SSL CA>" --qtest-url "https://<IP of machine 4>:<qtest https port of machine 4>" --qtest-https "<qtest https port of machine 4>" --cluster "<IP of Machine1>"
  1. Modify configure file to ensure the "datadir" variable point to a shared directory where all 4 machines are able to access.
    $ vim profiles/default.in
  2. Start the deployment.
    $ ./startup
  3. After the above command completes successfully, set up qTest Manager as Linux Daemon and start the service.
    $ ./shutdown 
    $ ./install
    $ systemctl start qtest

 

Installation is now complete.

Access qTest Manager via machine 4 URL (http://<IP of machine4>:<qtest port>), then continue with the following section to configure your site.

Configure qTest Manager

Refer to the article here to configure qTest Manager.

Powered by Zendesk