Menu

9.1.5 OnPremise Load Balance Install Guide for Windows Summer 2018

Overview

In this article, we provide instructions to install qTest components for 9.1.5 OnPremise on different Windows server machines with a Load Balancer, then connect it to qTest Manager on another machine. Please read the instructions thoroughly before starting your installations.

To request assistance with installation or obtain the self-install links, complete the OnPremise New Install Form.

Note: If you are not performing a fresh install and are upgrading, use the Upgrade Request Form and reference the OnPremise Upgrades Guide.

About the Command Line Wizard

The qTest 9.1.5 Command Line Wizard is a command line interface application that allows you to configure basic settings for qTest applications in your purchase package. 

You should understand these Command Line Wizard characteristics before you begin:

  • For each step, the installer will prompt you for a specific input value. After you provide a value, the installer will validate the input. If the value is incorrect, or additional permissions are required, an explicit error message displays so it’s easy to know how the input value should be corrected.
    • Default values display in square brackets [ ]. To use the default value, simply hit the Enter key.
    • Input values for yes/no questions, should be 'y', 'yes','n', 'no' (ignore case sensitive.) Any value other than those listed will be treated as a 'no.'
  • To terminate the configuration at any time without completing it, press Ctrl+C.
    Hint: In the event you cannot start the Command Line Wizard again after terminating the configuration, backup then remove the qtest.config file. Retry to start the Command Line Wizard again.

Known Limitations

  • The Command Line Wizard and qtestctl do not support the character "$". Therefore, a password, username, or any other value that you would enter in a prompt should not contain "$." 
  • For Windows users, if you type "Ctrl-C" to terminate the wizard, there will be exceptions shown in the terminal before the wizard stops. You can ignore these exceptions. The configurations are still persisted successfully to the qtest.config file.

Before You Begin

These instructions are specific to deploying qTest applications on a Windows Server 2016 environment. If you are installing qTest applications with load balancing on another Windows version, please consult our customer support.

NOTE: Only qTest Manager and Sessions can deploy with a load balancing model.

Read the following:

Please note that the Command Line Wizard will prompt you for each installation instruction. You will need to perform action items and gather specific connection information before you begin the installation process. Use the application checklist below to ensure you have all the required values readily available.

Ports

Open the Ports for the prerequisite applications and qTest applications you will be installing prior to any self/assisted installation or upgrade. You should only open the HTTPS ports if you plan to serve SSL from the application.

Prerequisite Applications

Product  Port
PostgreSQL 5432
Network Drive 2049
MongoDB 27017

Linux non-Docker and Windows

Product HTTP Port HTTPS Port
Manager 8080 8443 
Sessions 9080 9443
Scenario 6080 4443
Insights 10080 10443
Parameters 5080 5080
Pulse 4080 4080
Launch 3080 3080

IMPORTANT: Suggested application ports are listed above, however you are allowed to use a port of your choosing for the qTest applications you install.

Application Checklist

You will need to gather the following information for each application prior to beginning the installation and configuration.

PostgreSQL

  • Hostname or IP address
    Note: Do not include the port or protocol in the hostname or IP address, as they will be entered separately in the installer wizard.
  • Port
  • PostgreSQL's User Name
  • PostgreSQL's Password
    Important: Ensure that the Postgres user is a 'Superuser' who has the following permissions: read, write, create/delete/modify database/tables/schema/functions/sequences/triggers/view

 

MongoDB

  • Hostname or IP address with Port
  • If your MongoDB is running with replication, you will need the replica set
  • MongoDB's User Name
  • MongoDB's password
  • MongoDB's Authentication Database
  • MongoDB for Pulse

 

SSL Configuration (if applicable)
This information is only needed if you will be deploying with an SSL secured connection.

  • Certificate File-absolute path to the certificate file on this server.
    • Please use \ or / in the path. Recommend copying the path from system file browser. Login user in the terminal also needs to have at least READ permission on the file.
  • Private Key -absolute path to the certificate file on this server.
    • Please use \ or / in the path. Recommend copying the path from system file browser. Login user in the terminal also needs to have at least READ permission on the file.
  • Private Key passphrase 

 

qTest Manager

  • Directory where attachments will be stored. This directory should not be under the extracted directory of qtestctl. Login user in the terminal also needs to have at least WRITE permission on the directory.
  • Directory where logs will be stored. This directory should not be under the extracted directory of qtestctl. Login user in the terminal also needs to have at least WRITE permission on the directory.
  • qTest Managers HTTP or HTTPS Port
  • URL to access qTest Manager outside of this machine

 

qTest Sessions

  • Storage Type where you will store qTest Sessions' resource files
    Example: disk storage or amazon_s3
  • If using amazon_s3 storage you will need the following:
    • Amazon S3's access key
    • Amazon S3's secret key
    • Amazon S3's bucket name
  • Location where you will store resource files
  • qTest Sessions HTTPS Port

 

qTest Insights

  • qTest Insights HTTP or HTTPS Port

 

qTest Parameters

  • qTest Parameters HTTPS Port

 

qTest Launch

  • qTest Launch's HTTPS Port
  • qTest Launch's public URL

 

qTest Pulse

  • qTest Pulse's HTTP or HTTPS Port
  • qTest Pulse's public URL
  • qTest Pulse log location
    Note:
    This directory should not be under the extracted directory of qtestctl

 

qTest Scenario

  • qTest Scenario's HTTPS Port
  • qTest Scenario's public URL
    Note: 
    The base URL/domain name of the server that Scenario Server is installed and running. This can be a cloud or local instance and should point to either the reverse proxy that Scenario Server is running behind or directly to the web address of the web server that Scenario Server is installed on (a computer bound to port 80/443 depending on if your traffic is HTTP or HTTPS based). 

Install qTest Applications with a Load Balancing Model

Refer to this article to view different deployment model samples.

Using this sample load balancing model, you will need to install and configure multiple qTest Manager and Sessions application nodes on different servers, using the same qTest Application Installation Package. Your other application nodes will run on their own servers as well as your prerequisite applications and shared directory which will be installed on their own servers as well. 

The sample below uses 5 servers.

  • 1 load balancing server for Manager
  • 3 application node servers
  • 1 database server 

 

HA_-_5_servers.gliffy.jpg

  • Server 1Manager Load Balancer is a server that acts as a load balancer for the two qTest Manager servers. We will install and use nginx on this server for that purpose.
  • Server 2
    • qTest Manager application node which is an instance of qTest Manager deployed in a Linux server.
    • qTest Sessions application node which is an instance of qTest Sessions deployed in a Linux server.
    • NFS Client
  • Server 3:
    • qTest Manager application node which is an instance of qTest Manager deployed in a Linux server.
    • qTest Sessions application node which is an instance of qTest Sessions deployed in a Linux server.
    • NFS Client
  • Server 4:
    • qTest Insights application node.
    • qTest Parameters application node.
    • qTest Launch application node.
    • qTest Pulse application node.
  • Server 5: Prerequisite applications, including MongoDB and PostgreSQL and the Shared Network Drive
    • MongoDB: a database engine used to manage qTest Parameters and Pulse
    • PostgreSQL: a database engine used to manage qTest Manager, Sessions, Insights and Launch. All application nodes must use the same PostgreSQL database.
    • Shared Server: a server that hosts shared components that are required to run qTest Manager and Sessions. It should be accessible from all application nodes to store attachments and search index. 
      • NFS Server (Network File Systems): used to share directories and files with others over a network. We will use NFS to manage and share files created by qTest Manager and Sessions applications deployed on the 2 qTest Manager and qTest Sessions servers.
        • IPv4 Public IP: we will not use the public IP address since this server will not be exposed to the outside world
        • Private IP: 10.0.10.230

IMPORTANT:

  • 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. Our sample uses nginx.
  • Your team members will access qTest Manager via the URL in the application nodes as configured in the Load Balancer.

Setup Shared Network Drive and Install NFS Server

You will need to create a directory under a shared network drive which is accessible from all application nodes. Please read the Set Up a Shared Directory Using NFS - Windows article to set up your shared network drive using NFS. 

Note: Files that may need to be shared among services can be supported by a distributed file system like NFS or SMB.

Install an Application Node

Installing an application node follows the same instructions as installing a qTest application on a single server. Please read the 9.1.5 OnPremise Single Server Install Guide for Windows. You can add as many nodes as you need. 

IMPORTANT: As described in the sample load balancing diagram above, there is one Manager application node on one server, one Sessions node on one server, etc. For these single application installations, you will answer appropriately in the Command Line Wizard for the applications to install on that single machine. Therefore, if you are installing only Manager on one server, then you will answer 'yes' for manager, but 'no' for all other applications when prompted in the Command line Wizard. 

Restart Server

You will need to restart the server for the changes to take effect, then move on to installing the next qTest application.

Repeat Application Installations

You will need to repeat the Install an Application Node and Install qTest Applications as a Windows Service for each server that contains one or more applications. (You can add as many application nodes as you need for your team size. In this example, we have 2 Manager and 2 Sessions application nodes.)

Manager and Sessions Only-Server Requirements

Before you download the application installation package you will need to install the NFS Client on your Manager and Sessions servers. Use the NFS client to mount the shared folder, which you have set up in a Shared Server, to a local drive. The local drive will be used to configure qTest Manager and Sessions when you install it.

In our sample deployment model above, the application installation steps would need to be completed 8 times; once for each application node:

  • Server 2: qTest Manager application node, qTest Sessions application node and NFS Client.
  • Server 3: qTest Manager application node, qTest Sessions application node and NFS Client. 

Setup qTest Manager Load Balancer

Now, It's time to load balance. You will need one server to install load balancing software. 

  • Server 1: qTest Manager Load Balancer

You will need to use any proxy tools (such as HAProxy, nginx) which are available in your organization to configure the Load Balancer.

In our example, we will install and configure nginx on a Windows server whose public IP address is 54.92.55.101.

Note: In this example, we use nginx to load balance qTest Manager and Sessions applications deployed on two Windows servers. However, you could choose to install your preferred load balancing software and follow the instructions of the software vendor to configure.

Download nginx

  1. Access the Windows server where you will install nginx.
  2. Download nginx 1.13.0 here.
  3. Extract the downloaded nginx package to C:\nginx-1.13.0

Configure nginx

  1. Open nginx configuration file at C:\nginx-1.13.0\conf\nginx.conf
  2. Edit the file as seen below (notice the highlighted configuration in bold).

Note: it is highly recommended that you copy and paste all of the content below to your nginx.conf file. Replace blue text with actual values. Only information listed out here needs to be updated. Other information should remain unchanged. 


#user nobody;
worker_processes 1;

#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;

#pid logs/nginx.pid;

events {
worker_connections 1024;
}

http {
include mime.types;
default_type application/octet-stream;

#log_format main '$remote_addr - $remote_user [$time_local] "$request" '
# '$status $body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"';

#access_log logs/access.log main;

sendfile on;
#tcp_nopush on;

#keepalive_timeout 0;
keepalive_timeout 65;

#gzip on;

upstream application_servers {
server IP address and port of server 2;
server IP address and port of server 3;
}

server {
listen 80;
server_name localhost;

#charset koi8-r;
#access_log logs/host.access.log main;

location / {
proxy_pass http://application_servers;
proxy_redirect http://$http_host $scheme://$http_host;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Host $http_host;
}
}

Configure the Proxy Tool to Start at Windows Start Up

Note: our instructions below use nginx as the sample proxy tool.

Create a batch file, that will start nginx when it is executed, by following the steps below:

  1. Navigate to the folder C:\nginx-1.13.0\
  2. Create a file named startup.bat.
  3. Enter the following information in the file:
    start nginx.exe
  4. Save and close the file.
  5. Open Task Scheduler and select Create Basic Task in the Actions panel on the right.
    nginx-startup-task-scheduler-01.png
  6. On the Create Basic Task screen, enter 'Start nginx' in the Name field then select Next.
    nginx-startup-task-scheduler-02.png
  7. On the Task Trigger screen, select the option 'When the computer starts', then select Next.
    nginx-startup-task-scheduler-03.png
  8. On the Action screen, select the option 'Start a program', then select Next.
    nginx-startup-task-scheduler-04.png
  9. On the Start a Program screen, enter the following, then select Next:
    • Program/script: C:\nginx-1.13.0\startup.bat
    • Start in (optional): C:\nginx-1.13.0
      nginx-startup-task-scheduler-05.png
  10. In the Summary screen, click Finish.
    nginx-startup-task-scheduler-06.png
  11. You will be taken back to the Task Scheduler screen.
  12. Select Task Scheduler Library item in the left panel, in the middle panel locate the task you just created with the name 'Start nginx', right click and select Properties in the popup menu.
    nginx-startup-task-scheduler-07.png
  13. From the Properties window, select Change User or Group...
    nginx-startup-task-scheduler-08.png
  14. In Select User or Group window:
    • Enter system in the 'Enter the object name to select' field.
    • Select Check Names.
    • Select OK
      nginx-startup-task-scheduler-09.png
  15. You will get back to the Properties window.
  16. Check the checkbox 'Run with highest privileges' then click OK.nginx-startup-task-scheduler-10.png
  17. You have finished setting up the load balancer with nginx and configured it to load balance the two qTest Sessions instances.

Now, restart the load balancing server and make sure it is up and running before proceeding to the next step.

Configure qTest Manager to Connect to qTest Applications

Follow this article to configure qTest Manager to connect with the other qTest applications you installed. Load Balancing instructions are supplied for the applicable applications. 

After setting up the Load Balancer, your users will access qTest Manager/Sessions using the URL configured in the Load Balancer. You should also verify that the applications can be accessed and working properly before performing the next and final step.

Subscribe To Our Blog
Powered by Zendesk