Menu

Manager 8.7.3 Load Balancing Installation Guide for Docker

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 8.7.3 using Docker on separate CentOS/Ubuntu machines with a Load Balancer.

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

  • Check this article for to deploying qTest Sessions with load balancing.

Before you begin

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

  • Your machine needs to satisfy qTest's recommended hardware requirements
  • Docker 17.03 has been installed. Follow these instructions to install Docker on your machine
  • For CentOS, you need to follow additional instructions to adjust Docker Storage Driver from overlay to devicemapper.
  • For CentOS 7.X+ or Ubuntu 16.10 machines: Docker requires a 64-bit installation and your kernel must be at least 3.10
  • Set up a shared directory where all machines you uses in the load balancing are able to access.

What includes in docker-deployment-4.3 package?

The qTest's docker-deployment-4.3 includes following applications. Among those, qTest Manager is the required application, simply specify more application you want to deploy (eligible application is up to your license)

  • qTest Manager 8.7.3 includes qtest and its prerequisite applications: redis, rabbitmq, postgres
  • qTest Sessions 4.0.2 includes session and its prerequisite application: postgres
  • qTest Parameters 1.1 includes mongodb, parameters, parameterslb

Install qTest Manager with Load Balancer

Example: Image below tries to demonstrate how to configure qTest Manager with load balancer for 4 machines:

  • Machine 1: considered as a cluster, deploy qTest Manager's prerequisite apps: redis, rabbitmq, postgres, poseidon
  • Machine 2: deploy qTest Manager 8.7.3 (qtest)
  • Machine 3: deploy qTest Manager 8.7.3 (qtest)
  • Machine 4: deploy qTest Manager's load balancer (qtestlb)

NOTE

  • cluster machine has to open 2 ports: 53 and 6783

op_diagrams1_docker.jpg

 

Deployment Instructions

Access to each of 4 machine where Docker has been installed using root or a user which has been added to docker user group:

  • Repeat step 1, step 2, step 3 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 separated 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.

Step 1. Download docker-deployment-4.3 package

$ wget <ENTER DOWNLOAD LINK HERE>

Step 2. Extract the package

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

Step 3. Access to the package directory (docker-deployment-4.3)

 $ cd docker-deployment-4.3

 

Machine 1 (the cluster)

1.1 Deploy redis, rabbitmq, postgres into Machine 1

  • Specify prerequisite apps: redis, rabbitmq, postgres, poseidon
    $ ./configure --apps "redis rabbitmq postgres poseidon"

1.2 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

1.3 Start the deployment

$ ./startup

1.4 Set qTest Manager as a Linux Daemon

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

Machine 2

  • If you want to deploy the qTest Manager with HTTP, go to step 2.1, ignore 2.2
  • If you want to deploy the qTest Manager with HTTPS, go to step 2.2

2.1 Deploy qtest (qTest Manager 8.7.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"
  • 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
  • Start the deployment
$ ./startup
  • After the above command completes successfully, set up qTest Manager as Linux Daemon and start the service
$ ./shutdown
$ ./install
$ systemctl start qtest

2.2 Deploy qtest (qTest Manager 8.7.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 --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>" --apps "qtest"
  • 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
  • Start the deployment
$ ./startup
  • After the above command completes successfully, set up qTest Manager as Linux Daemon and start the service
$ ./shutdown
$ ./install
$ systemctl start qtest

Machine 3

  • If you want to deploy the qTest Manager with HTTP, go to step 3.1, ignore 3.2
  • If you want to deploy the qTest Manager with HTTPS, go to step 3.2

3.1 Deploy qtest (qTest Manager 8.7.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"
  • 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
  • Start the deployment
$ ./startup
  • After the above command completes successfully, set up qTest Manager as Linux Daemon and start the service
$ ./shutdown
$ ./install
$ systemctl start qtest

3.2 Deploy qtest (qTest Manager 8.7.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 --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>" --apps "qtest"
  • 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
  • Start the deployment
$ ./startup
  • After the above command completes successfully, set up qTest Manager as Linux Daemon and start the service
$ ./shutdown
$ ./install
$ systemctl start qtest

Machine 4 (load balancer)

Deploy qtestlb into machine 4

  • If you want to deploy the qTest Manager with HTTP, go to step 4.1, ignore 4.2
  • If you want to deploy the qTest Manager with HTTPS, go to step 4.2

4.1 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>"
  • 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
  • Start the deployment
$ ./startup
  • After the above command completes successfully, set up qTest Manager as Linux Daemon and start the service
$ ./shutdown
$ ./install
$ systemctl start qtest

4.2 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>"
  • 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
  • Start the deployment
$ ./startup
  • After the above command completes successfully, set up qTest Manager as Linux Daemon and start the service
$ ./shutdown
$ ./install
$ systemctl start qtest

You've done with the installation, please access qTest Manager via machine 4 URL (http://<IP of machine4>:<qtest port>), then continue with following section to configure your site.

Set up qTest Manager

Refer to the article here to set up qTest Manager

Subscribe To Our Blog
Powered by Zendesk