QMetry and Reports Installation on AWS (using RDS & ECR) for RHEL8, RHEL9 and RHEL10

In this guide, we'll run you through installing QMetry Database on AWS RDS, QMetry Test Management application, and QMetry Reporting Tool in a 3 Tier Architecture on AWS.

This installation requires MySQL v8.4.8 on AWS RDS and installs QMetry over Apache Tomcat 11.0.5 and Open JDK 17.0.2 in a podman container.

AWS 3 Tier Architecture

3 Tiers

Installations

Server 1

QMetry Application

Server 2

QMetry Reports

AWS RDS 1

QMetry Database

AWS RDS 2

QMetry Reports Database

Pre-requisites

Confirm every item in the Pre-requisites for QMetry Application and Report Server Installation document. After that confirm the following:

Prerequisite

What to confirm

Operating System

Linux - RHEL8, RHEL9 and RHEL10

Rootless or non-root user installations are not supported on RHEL OS.

Required commands

unzip, wget, curl, and vim commands are supported.

Internet access

Internet access is required to download and install Podman and QMetry installation images.

Firewall and SELinux

Both are disabled on every server during installation.

Proxy Servers

No proxy blocks downloads from the internet.

Server communication

The application and report servers can reach each other on the required ports.

Open ports

Ports 80, 443, 8080 and 3306 are free on the relevant servers.

Root access

Podman installation requires root user access.

Disk space

The Podman and data directories have enough free space.

Installation files

Get the QMetry_RHEL_Installer_ECR.zip files and podman credentials from QMetry Support.

In addition to this, ensure the following:

  1. Four Servers are required: 2 AWS RDS for QMetry and Reports Databases, QMetry Application, and QMetry Reporting. These servers should be able to communicate with each other on respective ports as mentioned in the table below. Security groups should be configured accordingly. Refer QMetry Deployment Document for the hardware requirements.

  2. QMetry Application and Report Servers should be able to communicate over 80/443 and Database Server 3306/DB Ports. Port 8080 should be enabled/open on Reports Server to allow connections from QMetry application server. The ports 80/443 and 3306 on the respective servers should be free and should not be in use by other applications. QMetry App server should be able to communicate with the report's server on port 3306.

  3. If you are planning Jira integration with QMetry and Jira is running on https, make sure your QMetry is also running over https protocol. QMetry and Jira should run on the same protocol.

  4. By default, podman is managing storage under “/var/lib/” directory on the host machine. Make sure that both the directories have required disk space available as per usage requirement of QMetry application.

  5. QMetry Application's Server and QMetry Report's Server must have appropriate IAM roles assigned to communicate with various other AWS services like AWS ECR, AWS RDS, etc.

  6. The following Ports should be open:

    Installation

    Ports that need to be enabled and should be available for use

    AWS RDS - QMetry Application Database & QMetry Reports Databases

    3306 for both RDS

    QMetry Application

    80/443

    QMetry Report

    80/443, 8080 & 3306

    AWS EFS

    2049

    AWS ElastiCache (if enabling the optional Redis Cache Cluster)

    6379

Configure AWS EC2 to authenticate with AWS ECR Service

Install and configure AWS Credential Helper. If you want to use AWS IAM Role based authentication mechanism for ECR authentication from AWS EC2, then follow this step. Else, skip this step and make sure that you have done authentication with AWS ECR from QMetry and Report EC2 server before moving to the next step. Reference Github Credential Helper

Placing QMetry and Report Podman Images on the AWS ECR

Get Podman Image and place it on ECR. Perform these steps from the machine from which Docker Hub Container Image Library | App Containerization is accessible. It is required to have podman tool installed on this machine. Also, make sure that you have credentials for the ECR. In this step, we will download QMetry and Report podman image from podman repository and push it to the ECR repository.

Follow the steps mentioned below.

Step 1: Podman Login

Run the following command. When prompted, enter the Podman credentials provided with the installation package.

podman login   

Step 2: Pull the QMetry and Report podman images

Pull the QMetry and Report podman images from podman repository.

podman pull qmetry/qmetry:latest
podman pull qmetry/qmetry:reports_latest  

Step 3: Tag QMetry and Report podman images with the ECR.

podman tag qmetry/qmetry:latest <ECR_Repo_Url>/qmetryapp:latest
podman tag qmetry/qmetry:reports_latest <ECR_Repo_Url>/qmetryreport:latest 

Step 4: Login with AWS ECR

If you have set up and configured AWS Credentials Helper utility on EC2 servers, then skip this step and move to the next step.

Else, login with AWS ECR. If you have ECR credentials, then log in with ECR using it.

podman login <ECR_Repo_Url>     

If you have AWS CLI installed and configured on EC2, then you can use the following method to do authentication with ECR.

aws ecr get-login-password --region <regionID> | podman login --username AWS --password-stdin <ECR_Repo_Url>     

Step 5: Push QMetry and Report podman images to ECR

podman push <ECR_Repo_Url>/qmetryapp:latest
podman push <ECR_Repo_Url>/qmetryreport:latest

Create and Configure 2 RDS for QMetry Application Database and QMetry Reports Database

Create and configure the two RDS instances

Create two RDS instances that share a common parameter-group family, one for the Application database and one for the Reports database.

Step 1. Create DB parameter groups

To create database parameter groups, perform the following steps:

  1. Go to AWS Management Console and open the Amazon RDS console.

  2. In the navigation pane, select Parameter groups.

  3. Click Create parameter group.

  4. Parameter group family: Select mysql8 as DB parameter group family.

  5. Group name: Provide the name of the new DB parameter group.

  6. Description: Provide a description for the new DB parameter group.

  7. Click Create.

Repeat to create a second parameter group for the Reports RDS.

Step 2. Edit the parameter groups

Application RDS parameter group

Select the App parameter group and set these values:

Parameter

Value

binlog_format

ROW

character_set_client

utf8mb4

character-set-client-handshake

0

character_set_server

utf8mb4

collation_server

utf8mb4_unicode_ci

group_concat_max_len

500000000

innodb_autoinc_lock_mode

2

innodb_thread_concurrency

10

log_bin_trust_function_creators

1

lower_case_table_names

1

max_allowed_packet

536870912

sql_mode

NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO

thread_cache_size

200

innodb_log_buffer_size

536870912

innodb_log_file_size

1073741824

Report RDS parameter group

Select the Report parameter group and set these values:

Parameter

Value

character-set-client-handshake

0

group_concat_max_len

500000000

innodb_autoinc_lock_mode

2

innodb_strict_mode

0

lower_case_table_names

1

max_allowed_packet

536870912

thread_cache_size

200

Step 3. Create the Application Database RDS

To create application database RDS, perform the following steps:

  1. Create an RDS with MySQL database version 8.4.8

  2. Provide the RDS Name, Username and Password.

  3. Select the Application DB Parameter Group from Step 2.

  4. Start the service: RDS → Databases → Actions → Start.

Connect to the Application RDS and run the following so MySQL bin logs survive restarts (required for dependable report sync):

call mysql.rds_set_configuration('binlog retention hours', 24);

Note

Save the Application RDS username, password, schema name, and endpoint. You will need them during installation.

Step 4. Create the Reports Database RDS

To create Reports Database RDS, perform the following steps:

  1. Create an RDS with MySQL database version 8.4.8

  2. Provide RDS Name, Username and Password

  3. Select the Reports DB parameter group from Step 2.

  4. Connect to the Reports RDS and create the analytics schema:

    CREATE SCHEMA `qtmanalytics` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

Note

Save the Reports RDS username, password, schema name, and endpoint.

Install the QMetry Application

Prepare shared storage (EFS)

  • Create an EFS file system that all QMetry application nodes can share. AWS EFS must be accessible to all EC2 servers of QMetry application. Ensure that required port #2049 is open for incoming connections in the security group to allow connections from AWS EC2.

  • When creating the application EC2 instance, go to Configure Storage and select File Systems. Select File System created in the previous step.

  • Mount the EFS to a directory in the EC2 server to a directory, such as /opt/qmetryapp, and specify that same directory as the application directory during QMetry installation.

Install QMetry Application

To install QMetry Application, perform the following steps:

Step 1: Extract the installation files

Copy QMetry_RHEL_Installer_ECR.zip installation file received from QMetry Support to your server. Go to the directory where this file is kept and unzip the file.

unzip QMetry_RHEL_Installer_ECR.zip

Step 2: Run the installer

Run the following commands to start the installer.

cd QMetry_RHEL_Installer_ECR 
sudo su
chmod +x install.sh
./install.sh

Step 3: Online Install Prompt

Options

Allowed Values

Default Value

Recommended Value

Do you want to make an online installation (Y/N)?

Y, y, N, n

Y

Y

Step 4: Podman Verification

Enter the podman credentials shared as a part of the installation package.

Step 5: Main Installation Menu

Type 2 to install the QMetry application.

image-20260331-061107.png

Step 6: Specify the container repository URL

Enter podman repository URL: <input_ecr_url>

If AWS server has appropriate permission to download podman image from the ECR, then installation process will move forward with the next step. Otherwise, it will prompt for adding correct authentication details for the specified ecr url.

Step 7: Specify the application data directory

Enter a directory path on the host machine to store QMetry data such as attachments, licenses, imports, and exports. You can specify any valid path, and the installer creates the directory automatically if it does not exist.

Also, specify directory path for storing QMetry application's log files. This directory must not be shared across the multiple nodes of the QMetry application.

Options

Description

Example

Please enter QMetry application directory

Enter the EFS file system directory mounted for QMetry installation from the pre-requisites section above step 1.

/opt/QMetry_RHEL_Installer_ECR

Please enter QMetry application's log directory (not shared)

The directory should be a dedicated, non-shared location where the application's log files are stored for monitoring and troubleshooting.

/home/QMetry_RHEL_Installer_ECR_logs

Note

Recommended: Back up the application data directory on a regular schedule. Periodic backups help prevent data loss if a disaster occurs.

Step 8: Enter the configuration parameters

Enter the following parameters when prompted.

Options

Details

Default Value

Example

Enter QMetry Database Hostname

Enter QMetryDatabase Host as DNS/IP Address

<RDS DB Endpoint>

Enter RDS DB Endpoint

Enter QMetryDatabase Port

Enter QMetryDatabase Port. If it is unchanged, use "3306" as the Database port.

3306

3306

Enter QMetryDatabase Schema

QMetry Application Database schema name.

qmetry

qmetry

Enter QMetryDatabase Username

QMetry Application Database root user name

-

dbadmin

Enter QMetry Database Password (root user)

Enter QMetryApplication Database Password for the root user.

-

QMetry@123

Enter QMetry User (admin) Email (admin user)

Enter QMetry user email address for Admin.

-

admin@qmetry.com

Enter QMetry User (admin) Password

Enter QMetry user password for Admin.

-

Admin@123

Enter Min. Heap Memory for the webserver

Enter Heap Memory in GB(s)

2

2

Enter Max. Heap Memory for the webserver

Enter Heap Memory in GB(s)

4

4

Enter QMetry Database Connection Pool Size

Enter Pool Size in number format

100

100

The installation may take a while.

Step 9: Verify the podman

podman ps
docker_ps.png

Step 10: Get QMetry License and Install it

Choose the option that matches your license type.

  • For users evaluating QMetry: Use the evaluation license, valid for 30 days, that you received with the installation.

  • For users requiring a commercial license

    • QMetry Support needs your server's domain name and MAC address.

    • Find the MAC address with ifconfig, then email both to qtmprofessional@qmetrysupport.atlassian.net.

When you receive license.key, follow Steps to Apply License File.

Step 11: Access the Application

Open the QMetry application in a browser at the following address, where you substitute your own value. http://<your IP address OR domain name>

Log in with the Default QMetry credentials.

  • Username: admin

  • Password: <user specified password in Step # 8 >

The MySQL database is installed on port 3306 with the following details.

  • Username: root

  • Password: <user specified password in Step # 8 >

Step 12: Update the administrator profile

After you complete the previous steps, log in to the QMetry application and update the administrator profile.

  • Go to "Admin" Profile and Edit the Profile.

  • Update the administrator email address in the Email field.

  • In the Base URL field, enter your QMetry URL.

  • Select Update.

QSvrlog into QMetry application.png

Step 13: Configure additional Tomcat settings

QMetry installs with a default configuration for minimum and maximum heap memory. You can adjust these settings to match your hardware configuration. For more information, refer to Additional Configuration for more details.

Install QMetry Reports

Note

If you have purchased Advanced Reporting, then you will need a separate server for installing QMetry Reports.

Steps to Follow for QMetry Report Installation

To install QMetry Reports on the second server, perform the following steps:

Step 1: Get the installation zip file

Connect to the report server. Upload the QMetry_RHEL_Installer_ECR.zip to the /opt directory of the Report server and extract it with the following commands.

sudo su -
cd /opt
unzip QMetry_RHEL_Installer_ECR.zip
cd QMetry_RHEL_Installer_ECR/

Step 2: Run the reports installer

chmod +x install.sh
./install.sh

Step 3: Online Install Prompt

Options

Allowed Values

Default Value

Recommended Value

Do you want to make an online installation (Y/N)?

Y, y, N, n

Y

Y

Step 4: Podman Verification

Enter the podman credentials that were shared as part of the installation package.

Step 5: Main Installation Menu

Type 3 to install QMetry Reports.

image-20260331-061107.png

Step 6: Enter the report configuration parameters

After the installation starts, enter the following parameters when prompted.

Options

Details

Default Value

Example

Enter Number of CPU's to allocate

Allocate 3/4th of the available CPUs. For example, if CPU has 8 cores, enter 6.

To check total CPUs, run the command : lscpu

4

6

Enter Memory to allocate in GB(s)

Entered memory would be used by the sync job while running full sync of data. Enter 3/4th of total memory available on the server. For example, if the memory on the server is 24 GB, enter 18.

4

18

Wait for the script file to finish executing.

Options

Details

Example

Enter Mysql Database Host IP / DNS Name (Qmetry)

Enter Database Host Public IP/DNS of QMetry application.

Specify QMetry App RDS DB Endpoint

Enter Mysql Database Port (Qmetry)

Enter Database Port of QMetry application. If it is unchanged, use "3306" as Database port.

3306

Enter Mysql Database Schema (Qmetry)

Enter Database schema name of QMetry application.

qmetry

Enter Mysql Database Username (Qmetry)

Enter Database username of QMetry application. If it is unchanged, use "root" as username.

root

Enter Mysql Database Password (Qmetry)

Enter Database password of QMetry application.

QMetry@123

Enter Mysql Database Host IP / DNS Name (Reports)

Enter Database Host Public IP/DNS of QMetry Report.

Specify QMetry Reports RDS DB Endpoint

Enter Mysql Database Port (Reports)

Enter Database Port of QMetry Report Database. If it is unchanged, enter "3306" as Database Port.

3306

Enter Mysql Database Schema (Reports)

Enter Database schema name as “qtmanalytics“ for QMetry Reports Database.

qtmanalytics

Enter Mysql Database Username (Reports)

Enter Database username of QMetry Reports Database. If it is unchanged, use "root" as username.

root

Enter Mysql Database Password (Reports)

Enter Database password of QMetry Reports Database.

QMetryreports@!Nf0#

Enter Port To Start SyncJob (Reports)

Reports Sync Job runs from this port - 8080.

8080

Do you want to Run Force Sync Now? (y/n)

Enter y to sync all the QMetry data to Reports Database with the current script.

Always enter y at the time of fresh reports install.

Y

Enter Memory to allocate in GB(s) to Spark

Entered memory would be used by the sync job while running full sync of data. Enter 3/4th of total memory available on the server. For example, if the memory on the server is 24 GB, enter 18.

18

After successful installation of QMetry Report, you will see the message "QMetry Report Installation is complete".

Note

In cases when you need to force sync to re-sync any missing data, just repeat step 6, and skip all parameter details (by hitting enter) and just enter y when prompted for a force sync.

Wait for the script to finish executing.

Step 7: Verify the podman

podman ps 
image-20220215-070122__1_.png

Step 8: Restart Report Services

systemctl restart qmetry-reports

Wait for about 2 minutes before proceeding with the next step.

Step 9: Configure the database connection

Log into QMetry with 'admin' user login, and configure the reports server URL in the configuration menu.

  • Login to QMetry with administrator credentials and go to Customizations.

  • Select Insight Configuration and open Database Configuration tab.

  • Under Database Configuration tab, enter the following details:

    • Host: Reports Server Host Public IP/DNS.

    • Port: 3306

    • Username: root

    • Password : <Enter Report database password>

    • Database Name: <Report DB schema specified during installation>

  • Select Test to confirm a successful connection, and then select Test & Save.

    image-20260416-074350.png

Step 10: Set up the report data sync

On the Sync Data tab, set up the Report Data Sync from your reports server to QMetry Reporting.

  • Report Server URL: Enter your report server domain URL followed by port 8080. Confirm that port 8080 is open on the report server.

  • Select Test to confirm a successful connection and then select Test & Save.

Note

Run Sync Data the first time after you install QMetry reports installation. The time that the sync takes depends on the amount of data in QMetry. You can monitor sync progress and status in the interface. QMetry custom reports are not accessible while the sync runs. Run the sync only during off-peak hours.

Users can start using QMetry Reports when the sync is completed. QMetry remains available during this time.

image2020-7-1_12-31-2.png

Enabling Redis Caching Cluster (optional)

QMetry provides a capability for improving the overall performance and scalability even more by setting up Redis Caching Cluster. This step is optional. Follow the below steps to configure Redis Cache.

  1. Create a Redis cluster using AWS ElastiCache service for the Redis v7.0.7

  2. AWS ElastiCache Redis Cluster should be accessible to all the EC2 servers of QMetry application for caching related communication and configuration.

    • Ensure port #6379 is opened for incoming connections in the security group to allow connections from AWS EC2.

    • Port #6379 should be free and not in use by other applications.

  3. Configure Redis connection details in QMetry.

    1. Login to QMetry Application using “admin“ account, and go to the top right corner admin > Profile section. Edit the Profile.

    2. Enter the Redis URL and Test. In case, the test fails, check and ensure connectivity between ElastiCache Redis Cluster and AWS EC2.

    3. Upon successful Test, update the details.

Redis_URL_setup__2_.png

Install Automation API Features

Installing the Automation API with your on-premises QMetry installations will enable several automation API related features including faster automation result file imports into QMetry. If you plan to use Automation APIs to import test results into QMetry, refer to Installation for Automation API.

Get Support

Please generate a support ticket on the Support Portal for a detailed installation guide or contact your sales representative.

Publication date: