Menu

Prerequisite Software for qTest OnPremise Summer 2018 for Linux (non-Docker)

 Overview

Use this article to install and configure prerequisite applications before you install qTest OnPremise (Spring 2018 release) on a native Linux (CentOS or Ubuntu) machine, non-Docker. These prerequisite applications apply both to a single server or load balancing server.

There are 2 required prerequisites:

  • PostgreSQL 9.5.4 to 9.6.6
  • MongoDB 3.2 to 3.4 (needed for Parameters, Scenario, and Pulse)

Important: We provide a range of supported versions for the prerequisite components so that OnPremise customers can easily maintain qTest OnPremise over time. This reduces the need for you to upgrade every prerequisite component each time you upgrade qTest to the most recent version.

Ports

Please note, that you must open the ports below prior to any self/assisted installation or upgrade. 

Prerequisite Applications

Product  Port
Postgres 5432
Network Drive 2049
MongoDB 27017

Please note, that the example installations below, provide the recommended install version. However, you can use a prerequisite version different than these examples as long as the prerequisite version falls within the range of supported versions listed abo

Install PostgreSQL on CentOS

  IMPORTANT: All commands need to be executed under Root user

Install

Follow this article to install PostgreSQL v9.5 on your CentOS server using YUM installation.

Please note to use the following command to install both postgres server and extension rather than only the server as in the guide.

# yum install postgresql95-server postgresql95-contrib
		

Enable Remote Access

After you have finished install PostgreSQL, enable remote access to PostgreSQL database server:

  1. Search for file pg_hba.conf in Postgresql's installation directory.

    Typically stored at /var/lib/pgsql/x.y/data

    Example: /var/lib/pgsql/9.5/data
    # find /etc -name "pg_hba.conf" or find /var -name "pg_hba.conf"
    		
  2. Edit the file and append the following line, specify the IP of the server which will remotely connect to your PostgreSQL. This should be the servers where qTest packages are installed

    If you want to allow connection from multiple client machines on a specific network, specify the network address here in the CIDR-address format: [IP Address]/[Netmask in bits]

    If you want your PostgreSQL to accept all incoming connections regardless of the source IP address, use 0.0.0.0/0 as the IP address. 

    host all all [IP address]/[Netmask in bits] md5
    		


    You can define your specific PGSQL database host by running the ifconfig command on the PGSQL host on the appropriate network interface note the inet address which is IPV4 such as 192.168.0.255 and the netmask such as 255.255.255.0 (this is for the netmask calculation below.

    Calculation: An octet is any value between 0 - 255 of an IP address or a netmask that represents one of 4 possible decimal places in an IP or netmask such as 255.255.255.0. Note where each octet is 255. So in our example for each octet in the netmask that has 255, let that represent the value 8, which represents the number of bits in the netmask. In our example we have 3 octets that are full octets so they will represent the full 8 bits so our netmask in bits will represent 24. For our example, the CIDR format will look like 192.168.0.255/24

    Warning: netmask calculations can quickly become complicated if the netmask has values other than 0 or 255. If your network interface has any values between 0 and 255, consult with your network team to determine the CIDR format for you PGSQL host.

  3. Search for file postgresql.conf in Postgresql's installation directory typically the same directory as pg_hba.conf
    # find /etc -name "postgresql.conf" or find /var -name "postgresql.conf"
    		
  4. Edit the above file. Search for property listen_address and modify it to (remove # at the beginning of the line if it is there)
    listen_addresses = '*' 
    		

Change Postgres User's Password

Run the following commands to change his password:

# sudo -u postgres psql

postgres=# \password
Enter new password:
Enter it again:

Install PostgreSQL on Ubuntu

  IMPORTANT: All commands need to be executed under Root user

PostgreSQL is available in all Ubuntu versions by default. However, Ubuntu "snapshots" a specific version of PostgreSQL that is then supported throughout the lifetime of that Ubuntu version. Other versions of PostgreSQL are available through the PostgreSQL apt repository.

If the version included in your Ubuntu server is not v9.5, please refer to http://www.postgresql.org/download/linux/ubuntu/ to set the PostgreSQL Apt Repository.

Install

  1. From the terminal, run the following command to install PostgreSQL
    # apt-get update
    # apt-get install postgresql postgresql-contrib
    		
  2. Check for PostgreSQL's service name in your machine by the following command
    # chkconfig
    		
  3. From the command's output, search for postgresql to get its full name
    ...
    postgresql on //this is the full service name
    ...
    		
  4. Initialize the database using the PostgreSQL's service name you have found above
    # chkconfig postgresql on
    # systemctl postgresql initdb
    		

Enable Remote Access

After you have finished the install for PostgreSQL, enable remote access to PostgreSQL database server:

  1. Search for file pg_hba.conf in Postgresql's installation directory
    # find /etc -name "pg_hba.conf" or find /var -name "pg_hba.conf"
    		
  2. Edit the file and append the following line, specify the IP of the server which will remotely connect to your PostgreSQL. This should be the servers where qTest packages are installed

    If you want to allow connection from multiple client machines on a specific network, specify the network address here in the CIDR-address format [IP Address]/[Netmask in bits]

    If you want your PostgreSQL to accept all incoming connections regardless of the source IP address, use 0.0.0.0/0 as the IP address. 

    host all all [IP address]/[Netmask in bits] md5
    		


    You can define your specific PGSQL database host by running the ifconfig command on the PGSQL host on the appropriate network interface note the inet address which is IPV4 such as 192.168.0.255 and the netmask such as 255.255.255.0 (this is for the netmask calculation below.

    Calculation: An octet is any value between 0 - 255 of an IP address or a netmask that represents one of 4 possible decimal places in an IP or netmask such as 255.255.255.0. Note where each octet is 255. So in our example for each octet in the netmask that has 255, let that represent the value 8, which represents the number of bits in the netmask. In our example we have 3 octets that are full octets so they will represent the full 8 bits so our netmask in bits will represent 24. For our example the CIDR format will look like: 192.168.0.255/24

    Warning: netmask calculations can quickly become complicated if the netmask has values other than 0 or 255. If your network interface has any values between 0 and 255, consult with your network team to determine the CIDR format for you PGSQL host.

  3. Search for file postgresql.conf in Postgresql's installation directory typically the same directory as pg_hba.conf
    # find /etc -name "postgresql.conf" or find /var -name "postgresql.conf"
    		
  4. Edit the above file. Search for property listen_address and modify it to (remove # at the beginning of the line if it is there)
    listen_addresses = '*' 
    		

Change Postgres User's Password

Run the following commands to change his password:

# sudo -u postgres psql

postgres=# \password
Enter new password:
Enter it again:

Create qTest Database in PostgreSQL server

You need to create a qTest database in your PostgreSQL server which will be used when you configure qTest Manager

  1. Access the PostgreSQL server.
  2. Switch to postgres user.
    $ su postgres		
  3. Access the PostgreSQL shell.
    $ psql		
  4. List out the existing databases to avoid creating a duplicate database.
    \l		
  5. Create a database which will be used for qTest Manager and take note of its name as you will enter the database name in the Command Line Wizard when installing qTest applications.
    create database [database_name];		

Restart PostgreSQL

Run the following command to restart PostgreSQL:
sudo systemctl restart postgresql

Install MongoDB 3.4 on Ubuntu

  1. Import the public key used by the package management system. The Ubuntu package management tools (i.e. dpkg and apt) ensure package consistency and authenticity by requiring that distributors sign packages with GPG keys. Issue the following command to import the MongoDB public GPG Key:
    # sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 0C49F3730359A14518585931BC711F9BA15703C6
  2. Create the /etc/apt/sources.list.d/mongodb-org-3.4.list list file using the command appropriate for your version of Ubuntu:
    • Ubuntu 12.04
      # echo "deb [ arch=amd64 ] http://repo.mongodb.org/apt/ubuntu precise/mongodb-org/3.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.4.list
    • Ubuntu 14.04
      # echo "deb [ arch=amd64 ] http://repo.mongodb.org/apt/ubuntu trusty/mongodb-org/3.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.4.list
    • Ubuntu 16.04
      # echo "deb [ arch=amd64,arm64 ] http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.4.list
  3. Issue the following command to reload the local package database:
    # sudo apt-get update
  4. Install the latest stable version of MongoDB. Issue the following command:
    # sudo apt-get install -y mongodb-org

Install MongoDB 3.4 on CentOS

  1. Create a /etc/yum.repos.d/mongodb-org-3.4.repo file to hold the following configuration information for the MongoDB 3.4 repository. The file’s content is as below:
    [mongodb-org-3.4]
    name=MongoDB 3.4 Repository
    baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.4/x86_64/
    gpgcheck=1
    enabled=1
    gpgkey=https://www.mongodb.org/static/pgp/server-3.4.asc
  2. Install the MongoDB packages. Issue the following command:
    # sudo yum install -y mongodb-org

Configure MongoDB

Initialize replicaSet

Start MongoDB with the following command:
Note: if your path includes spaces, enclose the entire path with double quotes.
# sudo mongod --dbpath [PATH/TO/DB/FOLDER] --replSet "rs0"

Example:

  • Ubuntu
    # sudo mongod --dbpath /var/lib/mongodb --replSet "rs0"
  • CentOS
    # sudo mongod --dbpath /var/lib/mongo --replSet "rs0"

Create Root User

Open the second Terminal, and execute the commands below to create a root user:

mongo
rs.initiate()
use admin
db.createUser ({
    user: "[USER_NAME]",
    pwd: "[PASSWORD]",
    roles: ["root"]
})

Example:

mongo
rs.initiate()
use admin
db.createUser ({
    user: "tdm",
    pwd: "password",
    roles: ["root"]
})

Close the second Terminal, and press Ctrl+C on the first Terminal to stop MongoDB service.

Start MongoDB as a Service

  1. Edit /etc/mongod.conf file using following command:
    • Ubuntu
      # sudo vim /etc/mongod.conf
    • CentOS
      # sudo vim /etc/mongod.conf
  2. Now you can start to edit mongod.conf. Remove the net(port, bindIp) section, and edit the other sections as following:
    systemLog:
      destination: file
      path: [/PATH/TO/LOG/FOLDER]
    storage:
      dbPath: [/PATH/TO/DB/FOLDER]
    replication:
      replSetName: rs0
    security:
      authorization: enabled
    Example:
    • Ubuntu
      systemLog:
        destination: file

        logAppend: true
        path: /var/log/mongodb/mongod.log
      storage:
        dbPath: /var/lib/mongodb
        journal:
          enabled: true
      replication:
        replSetName: rs0
      security:
        authorization: enabled
    • CentOS 
      systemLog:
        destination: file
        path: /var/log/mongodb/mongod.log
      storage:
        dbPath: /var/lib/mongo
      replication:
        replSetName: rs0
      security:
        authorization: enabled
  3. Make sure the data and log folders have appropriate permissions by executing the following commands:
    # sudo chown -R [MONGODB_USER] [PATH/TO/DB/FOLDER]
    # sudo chown -R [MONGODB_USER] [PATH/TO/LOG/FOLDER]
    Example:
    • Ubuntu
      # sudo chown -R mongodb:mongodb /var/lib/mongodb
      # sudo chown -R mongodb:mongodb /var/log/mongodb
    • CentOS
      # sudo chown -R mongod:mongod /var/lib/mongo
      # sudo chown -R mongod:mongod /var/log/mongodb
  4. Start the MongoDB service by running the following command:
    # sudo systemctl start mongod
  5. You can verify that the mongod process has started successfully by checking the content of the log file at /var/log/mongodb/mongod.log for a line like below:
    [initandlisten] waiting for connections on port <port>
    Notes: If you would like to stop the MongoDB service as needed, run the following command:
    # sudo systemctl stop mongod
Powered by Zendesk