06. Prerequisite Softwares for qTest Manager 8.4.4 Installation Guide for CentOS/Ubuntu machine

Install PostgreSQL on CentOS

Install PostgreSQL on Ubuntu

Install Redis on CentOS

Install Redis on Ubuntu

Install RabbitMQ

Install PostgreSQL on CentOS

  IMPORTANT: All commands need to be executed under Root user

Install

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

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
    # find / -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

    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] md5
    		
  3. Search for file postgresql.conf in Postgresql's installation directory
    # find / -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
    # service postgresql initdb
    		

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
    # find / -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 server 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

    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] md5
    		
  3. Search for file postgresql.conf in Postgresql's installation directory
    # find / -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 Redis on CentOS

  IMPORTANT:

  • All commands need to be executed under Root user
  • The installation guide below is a reference from this article in Redis' website
  1. Download and compile Redis v2.8.19 by the following commands
    # wget http://download.redis.io/releases/redis-2.8.19.tar.gz
    # tar xvzf redis-2.8.19.tar.gz
    # cd redis-2.8.19.tar.gz
    # make
    		
  2. At this point you can try if your build works correctly by typing make test, but this is an optional step
    # make test
    		
  3. Copy the following files to under /usr/local/bin/. Remember to check if /usr/local/bin/ has been added to your PATH environment variable. If not, please add it
    # cp src/redis-server /usr/local/bin/
    # cp src/redis-cli /usr/local/bin/
    		
  4. Create directories where to store your Redis config files and your data
    # mkdir /etc/redis
    # mkdir /var/redis
    		
  5. Copy the init script under the utils directory into /etc/init.d. We suggest calling it with the name of the port where you are running this instance of Redis (the default port is 6379)
    # cp utils/redis_init_script /etc/init.d/redis_6379
    		
  6. View the file /etc/init.d/redis_6379 and perform the following updates:
    • Check if REDISPORT matches with the port number you will be using. Both the pid file path and the configuration file name depend on the port number
      #!/bin/sh
      #
      # Simple Redis init.d script conceived to work on Linux systems
      # as it does use of the /proc filesystem.
      
      REDISPORT=6379
      EXEC=/usr/local/bin/redis-server
      CLIEXEC=/usr/local/bin/redis-cli
      
      PIDFILE=/var/run/redis_${REDISPORT}.pid
      CONF="/etc/redis/${REDISPORT}.conf"
      				
    • Add the following lines at the top
      #!/bin/sh
      #
      # Simple Redis init.d script conceived to work on Linux systems
      # as it does use of the /proc filesystem.
      #
      # chkconfig:   - 85 15
      # description:  Redis is a persistent key-value database
      # processname: redis_6379
      				
  7. Create a directory inside /var/redis that will work as data and working directory for this Redis instance using the port number as the directory name
    mkdir /var/redis/6379
    		
  8. Copy the template configuration file under the Redis distribution's root directory into /etc/redis/ using the port number as the file name (eg: 6379.conf)
    # cp redis.conf /etc/redis/6379.conf
    		
  9. Edit the configuration file (6379.conf) and make the following changes
    1. Set daemonize to yes (by default it is set to no)
    2. Set pidfile to /var/run/redis_6379.pid (modify the port if needed)
    3. Set port accordingly. In our example it is not needed as the default port is already 6379
    4. Set logfile to /var/log/redis_6379.log
    5. Set dir to /var/redis/6379 (very important step!)
  10. Finally add the new Redis init script to all the default runlevels
    # chkconfig --add redis_6379
    		
  11. Now you can try running your Redis instance
    service redis_6379 start
    		

To make sure that your Redis instance is working as expected:

  • Try pinging your instance with redis-cli ping. Redis will response with PONG
    # redis-cli ping
    PONG
    		
  • Do a test save with redis-cli save and check that the dump file called dump.rdb is correctly stored into /var/redis/6379/
  • Check that your Redis instance is correctly logging in the log file

Install Redis on Ubuntu

  IMPORTANT:

  • All commands need to be executed under Root user
  • The installation guide below is a reference from this article in Redis' website
  1. Download and compile Redis v2.8.19 by the following commands
    # wget http://download.redis.io/releases/redis-2.8.19.tar.gz
    # tar xvzf redis-2.8.19.tar.gz
    # cd redis-2.8.19
    # make
    		
  2. At this point you can try if your build works correctly by typing make test, but this is an optional step
    # make test
    		
  3. Copy the following files to under /usr/local/bin/. Remember to check if /usr/local/bin/ has been added to your PATH environment variable. If not, please add it
    # cp src/redis-server /usr/local/bin/
    # cp src/redis-cli /usr/local/bin/
    		
  4. Create directories where to store your Redis config files and your data
    # mkdir /etc/redis
    # mkdir /var/redis
    		
  5. Copy the init script under the utils directory into /etc/init.d. We suggest calling it with the name of the port where you are running this instance of Redis (the default port is 6379)
    # cp utils/redis_init_script /etc/init.d/redis_6379
    		
  6. View the file /etc/init.d/redis_6379 and check if REDISPORT matches with the port number you will be using. Both the pid file path and the configuration file name depend on the port number
    #!/bin/sh
    #
    # Simple Redis init.d script conceived to work on Linux systems
    # as it does use of the /proc filesystem.
    
    REDISPORT=6379
    EXEC=/usr/local/bin/redis-server
    CLIEXEC=/usr/local/bin/redis-cli
    
    PIDFILE=/var/run/redis_${REDISPORT}.pid
    CONF="/etc/redis/${REDISPORT}.conf"
    
    		
  7. Create a directory inside /var/redis that will work as data and working directory for this Redis instance using the port number as the directory name
    mkdir /var/redis/6379
    		
  8. Copy the template configuration file under the Redis distribution's root directory into /etc/redis/ using the port number as the file name (eg: 6379.conf)
    # cp redis.conf /etc/redis/6379.conf
    		
  9. Edit the configuration file (6379.conf) and make the following changes
    1. Set daemonize to yes (by default it is set to no)
    2. Set pidfile to /var/run/redis_6379.pid (modify the port if needed)
    3. Set port accordingly. In our example it is not needed as the default port is already 6379
    4. Set logfile to /var/log/redis_6379.log
    5. Set dir to /var/redis/6379 (very important step!)
  10. Finally add the new Redis init script to all the default runlevels
    # update-rc.d redis_6379 defaults
    		
  11. Now you can try running your Redis instance
    # /etc/init.d/redis_6379 start
    		

To make sure that your Redis instance is working as expected:

  • Try pinging your instance with redis-cli ping. Redis will response with PONG
    # redis-cli ping
    PONG
    		
  • Do a test save with redis-cli save and check that the dump file called dump.rdb is correctly stored into /var/redis/6379/
  • Check that your Redis instance is correctly logging in the log file

Install RabbitMQ

  IMPORTANT:

  • In case you are deploying qTest with load balancing, you are required to install RabbitMQ. If not, you can skip installing this
  • All commands need to be executed under Root user
  • Please follow this instruction and install RabbitMQ v3.5.4

Configure RabbitMQ

  1. After you have installed RabbitMQ successfully, run the following commands to configure it
    rabbitmq-plugins enable rabbitmq_stomp
    rabbitmq-plugins enable rabbitmq_management
    rabbitmqctl add_user qtest [qtest_password]//to create user qtest, specify his password
    rabbitmqctl add_user rabbitmqadmin [rabbitmqadmin_password]//to create user rabbitmqadmin, specify his password
    rabbitmqctl set_user_tags rabbitmqadmin administrator
    rabbitmqctl add_vhost qtest-onpremise //to create a virtual host named qtest-onpremise
    rabbitmqctl set_permissions -p qtest-onpremise qtest ".*" ".*" ".*" //grant user qtest the access to virtual host qtest-onpremise 
    		
  2. Execute the command below to view amqp port and stomp port. You will need to use these ports while installing qTest Manager
    sudo rabbitmqctl status | grep "amqp\|stomp"