Install Request Tracker (RT) with MariaDB on CentOS 8

0
979

Welcome to our guide on how to install Request Tracker (RT) with MariaDB on CentOS 8. Request Tracker (RT) is an enterprise-grade issue tracking/ticketing system that allows organizations to keep track of various tasks to be done, tasks completed, and when tasks were (or weren’t) completed.

It supports seamless email integration, custom workflows, SLA automation and tracking etc. Read more about RT features.

Install Request Tracker (RT) with MariaDB on CentOS 8

Run System update

To begin with ensure that your system packages are up-to-date.

dnf update

Disable SELinux

Well, I personally do not recommend this step, BUT, If you do not want to have deal with SELinux permissions denied, simply disable it by executing the command below;

sed -i 's/=enforcing/=disabled/' /etc/selinux/config

Next, reboot the system to effect the SELinux disablement.

systemctl reboot -i

Install Required Packages for RT

Request Tracker (RT) requires quite a number of packages in order to run. These include Perl and some perl modules, a web server (Nginx or Apache), a backend database (MySQL/MariaDB, PostgreSQL, SQLite, Oracle).

In this demo, we use MariaDB as a database backend and Apache as the Web server.

Enable EPEL and PowerTools Repos as they contain some of the required dependencies.

dnf config-manager --set-enabled PowerTools
dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm

To install required packages, simply execute the command below.

dnf install expat gd graphviz openssl expat-devel gd-devel openssl-devel perl perl-CPAN perl-YAML wget screen mod_fcgid perl-libwww-perl perl-Plack perl-GD perl-GnuPG-Interface perl-GraphViz perl-Crypt-SMIME  perl-String-ShellQuote perl-Crypt-X509 perl-LWP-Protocol-https graphviz-devel spawn-fcgi
dnf groupinstall "Development Tools"

Install Apache Web server on CentOS 8

dnf install httpd

Start and enable Apache to run on system boot.

systemctl enable --now httpd

Install MariaDB on CentOS 8

dnf install mariadb-server

Start and enable MariaDB to run on system boot.

systemctl enable --now mariadb

Run the initial security script and remove test databases, anonymous user accounts, disable remote root login…

mysql_secure_installation

You can as well install and use MariaDB 10.4 instead by following the guide below;

Install MariaDB 10.4 on CentOS 8

Install Mail Transfer Agent to allow RT route and deliver mails. Postfix is used in this guide.

dnf -y install postfix

Install Request Tracker (RT) on CentOS 8

Download RT Tarball

In this guide, RT is installed on CentOS 8 from the source. As such, navigate to RT downloads page and grab the latest version of RT archive.

RT 4.4.4 is the latest stable release as of this writing.

Simply get the link from the downloads page and pull it using wget command as shown below;

wget https://download.bestpractical.com/pub/rt/release/rt-4.4.4.tar.gz

To verify the integrity of the archive, calculate its hash (sha256) and compare it with the value available on the release page.

sha256sum rt-4.4.4.tar.gz
34c316a4a78d7ee9b95d4391530f9bb3ff3edd99ebbebfac6354ed173e940884  rt-4.4.4.tar.gz

Unpack RT Archive

Extract the RT tarball to some directory.

tar xzf rt-4.4.4.tar.gz

Compile and Install RT on CentOS 8

Navigate to RT archive directory extracted above.

cd rt-4.4.4

Next execute the configure script to adapt RT to the system to ensure that all required dependencies to the build and install RT are available.

Note that you can always set the your preferred options for configure script. Simply utilize the help page for the options to use.

./configure --help

Ton run configure script with the default options, execute the command below. RT defaults to installing in /opt/rt4 with MySQL as its database.

./configure

Once the configure script completes, run the command below to check for any Perl missing dependencies.

make testdeps

This script will check if all required dependencies are available and report any that is missing.

Fix missing RT dependencies either by installing the missing dependencies manually or simply executing the make fixdeps command as a privileged user.

However, before you can run the fixdeps command, you need to configure the CPAN shell.

/usr/bin/perl -MCPAN -e shell
...
Would you like to configure as much as possible automatically? [yes] yes

At the CPAN shell prompt, type quit to exit the shell.

...
cpan shell -- CPAN exploration and modules installation (v2.18)
Enter 'h' for help.
cpan[1]> quit

Also, CPAN has a tool called cpanm that can help the make fixdeps command install dependencies. Thus install this tool and set RT to use it to fix deps.

To install cpanm, execute the commands below;

curl -L https://cpanmin.us | perl - --sudo App::cpanminus
cpanm --self-upgrade --sudo
which cpanm
/usr/local/bin/cpanm
export RT_FIX_DEPS_CMD=/usr/local/bin/cpanm

Next, run the fixdeps command;

make fixdeps

The command may take sometime as it tries to fix the missing dependencies. Ensure that all the dependency issues is sorted before you can proceed.

You can always install or reinstall or force the installation of dependencies using cpanm.

For example, assume you have a few missing dependencies after running the make fixdeps command;

make testdeps | grep -i missing
	HTML::FormatText::WithLinks >= 0.14 ...MISSING
	Plack::Handler::Starlet ...MISSING
	HTML::FormatText::WithLinks::AndTables >= 0.06 ...MISSING
SOME DEPENDENCIES WERE MISSING.
CORE missing dependencies:
	HTML::FormatText::WithLinks >= 0.14 ...MISSING
	Plack::Handler::Starlet ...MISSING
	HTML::FormatText::WithLinks::AndTables >= 0.06 ...MISSING
make: *** [Makefile:272: testdeps] Error 1

You can thus install these missing dependencies using cpanm.

cpanm --install Plack::Handler::Starlet
cpanm --install HTML::FormatText::WithLinks
cpanm --install HTML::FormatText::WithLinks::AndTables

Check missing dependencies again;

make testdeps
...
MAILGATE dependencies:
	LWP::Protocol::https ...found
	Pod::Usage ...found
	LWP::UserAgent >= 6.02 ...found
	Mozilla::CA ...found
	Getopt::Long ...found
MYSQL dependencies:
	DBD::mysql >= 2.1018 ...found
SMIME dependencies:
	Crypt::X509 ...found
	File::Which ...found
	String::ShellQuote ...found

All dependencies have been found.

If you get the last line, All dependencies have been found, you are good to go.

Once the dependencies issue is sorted, install RT. Note that this command will install RT on the /opt/rt4 directory.

make install
...
Congratulations. RT is now installed.


You must now configure RT by editing /opt/rt4/etc/RT_SiteConfig.pm.

(You will definitely need to set RT's database password in 
/opt/rt4/etc/RT_SiteConfig.pm before continuing. Not doing so could be 
very dangerous.  Note that you do not have to manually add a 
database user or set up a database for RT.  These actions will be 
taken care of in the next step.)

After that, you need to initialize RT's database by running
 'make initialize-database'

Configuring RT from Web Interface

After the installation completes, you can now proceed to configure RT via web interface by running it on a standalone mode.

To enable external access to RT, open web server port on firewall. In this demo, we are using port 80/tcp. Hence, execute the command below to open port 80 on firewall.

firewall-cmd --add-port=80/tcp --permanent
firewall-cmd --reload

To be able to access RT from browser, stop your web server is running and run the script below.

systemctl stop httpd
/opt/rt4/sbin/rt-server

If using a custom port, be sure to open the port on firewall and specify the port using rt-server script above.

/opt/rt4/sbin/rt-server --port 8080
...
HTTP::Server::PSGI: Accepting connections at http://0:80/

Access RT from browser to proceed with configuration. Note it accepting connections on http://0:80/ in our case. Hence can access it using IP address or resolvable hostname of your server, http://server_IP_OR_hostname.

Configure Database Connection Settings

From the RT interface, click Let’s go! to select the database type. MySQL/MariaDB is used in this guide.

Choose RT database

Click Next to create RT database and database user. Ensure you provide credentials for administrative user.

Create rt database centos 8

To verify database connection, click Check Database Connectivity.

RT database connection centos 8

Customize RT

Click Next to customize your RT with the most basic configurations needed to get it up and running.

RT basic settings centos 8

Set the path to your MTA and RT admin email.

RT MTA postfix centos 8

Set the comments and correspondences addresses.

RT Comments and correspondences addresses CentOS 8

Click Initialize the database to create RT’s database and insert initial metadata.

Once the database is initialized, click Finish installation to complete the setup.

You are then taken to RT login page.

Note that RT is still running on standalone mode. Press Ctrl+c from the terminal to stop the /opt/rt4/sbin/rt-server script and proceed to configure web server for RT.

Configure RT Web Server on CentOS 8

Edit the /etc/httpd/conf.d/fcgid.conf configuration file and add the line,FcgidMaxRequestLen 1073741824, to define maximum HTTP request length.

vim /etc/httpd/conf.d/fcgid.conf
...
# Use FastCGI to process .fcg .fcgi & .fpl scripts
AddHandler fcgid-script fcg fcgi fpl

# Sane place to put sockets and shared memory file
FcgidIPCDir /run/mod_fcgid
FcgidProcessTableFile /run/mod_fcgid/fcgid_shm
FcgidMaxRequestLen 1073741824

Create RT web configuration file with the content below;

vim /etc/httpd/conf.d/rt.kifarunix-demo.com.conf
<VirtualHost rt.kifarunix-demo.com:80>
    AddDefaultCharset UTF-8

    ScriptAlias / /opt/rt4/sbin/rt-server.fcgi/

    DocumentRoot "/opt/rt4/share/html"
    <Location />
        Require all granted

        Options +ExecCGI
        AddHandler fcgid-script fcgi
    </Location>
</VirtualHost>

Save the configuration file and quit.

Check for Apache syntax errors.

httpd -t
Syntax OK

Configure RT Logging

Logging in RT is controlled from SiteConfig configuration file. There are multiple logging options for RT as described on LogsConfig Wiki. However, we are going to configure RT logging to a file in this guide.

Open the RT_SiteConfig.pm configuration file for editing.

vim /opt/rt4/etc/RT_SiteConfig.pm

At the end of configuration files, insert the following lines making appropriate changes as per your environment setup.

Set($LogToFile,      'debug');
Set($LogToFileNamed, 'rt.kifarunix-demo.com.log');
Set($LogDir,         '/var/log/rt4');

Save and quit the configuration file.

Check the configuration syntax;

perl -c /opt/rt4/etc/RT_SiteConfig.pm

Create the Logging directory as specified by the $LogDir parameter.

mkdir /var/log/rt4

Ensure that the owner of the logging directory is Apache;

chown -R apache:apache /var/log/rt4

Be sure to always check this configuration file for any RT errors.

Start Apache

systemctl start httpd

Accessing RT

You can now access your RT from browser using the address http://rt-server-IP_OR_hostname.

Use root as the username and password configured while setting up RT.

RT login page on CentOS 8

When you successfully log in, you land on RT at a glance web interface.

RT at a glance on CentOS 8

RT is now installed and running. However, for it to be useable, there is quite a lot that needs to be done. We will cover how to configure RT in our next guides.

That marks the end of our guide on how to install Request Tracker (RT) with MariaDB on CentOS 8.

Reference

RT 4.4.4 Documentation README

Other Tutorials

Install and Setup HAProxy on CentOS 8

Install and Configure SNMP on CentOS 8

Configure BIND DNS Server using Webmin on CentOS 8

LEAVE A REPLY

Please enter your comment!
Please enter your name here