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.5.3 using Docker on separate CentOS/Ubuntu machines with a Load Balancer.
This article only demonstrates how to deploy load balancer for qTest Manager.
- Read this article to deploy qTest Sessions with load balancing.
Before you Begin
- Follow this article Getting Started with qTest OnPremise Spring 2019 to get an overview of qTest OnPremise deployment.
What is included in the Docker-Deployment-4.7 package?
The qTest Docker-Deployment-4.7 includes the 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 9.5.3 includes qtest and its prerequisite applications: postgres, qtestlb
- qTest Session 4.2.3 includes session and its prerequisite applications: postgres, qtestlb
- qTest Parameters 2.2.1 includes parameters and its prerequisite applications: postgres, parameterslb
- qTest Insights 1.21.3 includes insights and its prerequisite applications: postgres, insightslb, insightsetl
- qTest Launch 1.4.2 includes launch and its prerequisite applications: postgres, launchlb
- qTest Pulse 9.1.2 includes pulse and its prerequisite applications: mongodb, pulselb
- qTest Scenario 2.2.2 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.5.3 (qtest)
- Machine 3: deploy qTest Manager 9.5.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
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.7 Package
$ wget <ENTER DOWNLOAD LINK HERE>
Extract the Package
$ tar -zxf docker-deployment-4.7.tar.gz
Access the Package Directory
$ cd docker-deployment-4.7
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.5) 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 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
- 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
Deploy qtest (qTest Manager 9.5.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 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
- 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
Deploy qtest (qTest Manager 9.5.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 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
- 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
Deploy qtest (qTest Manager 9.5.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 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
- 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 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 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
- 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
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
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.
Set up qTest Manager
Refer to the article here to set up qTest Manager.