Instalación de Request Tracker RT en openSUSE
Hace tiempo atrás había investigado acerca de algunas herramientas que permiten gestionar reportes de incidencias de usuarios que han detectado algún problema o requieren de soporte en sistemas y servicios.
Si bien en un principio me pareció importante y sumamente necesario utilizar este tipo de herramientas para gestionar los casos de incidencias y/o recomendaciones, me he dado cuenta que para poner en producción algo parecido se necesita de la voluntad y del esmero de todos, ya que deben adecuarse a esa nueva metodología de trabajo para que la implementación de la herramienta no sea un rotundo fracaso.
No obstante, me puse a investigar y el resultado fue un tutorial sobre una de estas herramientas: Request Tracker (RT) de Best Practical Solutions. Mucho tiempo el manual quedó a medio terminar hasta que retomé el trabajo para concluirlo más o menos. Lo que se encuentra concluido es el procedimiento de instalación (que por cierto ha llevado bastante tiempo de investigación y prueba), quedando sin abarcar la configuración para el envío de correos y el manual de uso, aunque al final de este artículo se encuentra algunos enlaces que tratan acerca de eso.
Como siempre los pasos de instalación se encuentran resumidos en una serie de puntos secuenciales para seguir con mayor facilidad el procedimiento, estos se presentan a continuación:
Si bien en un principio me pareció importante y sumamente necesario utilizar este tipo de herramientas para gestionar los casos de incidencias y/o recomendaciones, me he dado cuenta que para poner en producción algo parecido se necesita de la voluntad y del esmero de todos, ya que deben adecuarse a esa nueva metodología de trabajo para que la implementación de la herramienta no sea un rotundo fracaso.
No obstante, me puse a investigar y el resultado fue un tutorial sobre una de estas herramientas: Request Tracker (RT) de Best Practical Solutions. Mucho tiempo el manual quedó a medio terminar hasta que retomé el trabajo para concluirlo más o menos. Lo que se encuentra concluido es el procedimiento de instalación (que por cierto ha llevado bastante tiempo de investigación y prueba), quedando sin abarcar la configuración para el envío de correos y el manual de uso, aunque al final de este artículo se encuentra algunos enlaces que tratan acerca de eso.
Como siempre los pasos de instalación se encuentran resumidos en una serie de puntos secuenciales para seguir con mayor facilidad el procedimiento, estos se presentan a continuación:
Pasos de instalación
- Los principales requisitos que son necesarios para la implementación de la herramienta RT se listan a continuación:
Perl 5
MySQL 5 con soporte InnoDB
Apache 2 - Necesitamos tener instalados los siguientes paquetes para cumplir con las dependencias de la herramienta RT, en este caso he utilizado el comando zypper para instalar los paquetes:
testsrv:~ # zypper install apache2-mod_perl apache2-mod_python gd ncftp FastCGI FastCGI-devel perl perl-DBD-mysql perl-MIME-tools perl-FastCGI perl-Apache-DBI perl-YAML zlib-devel libopenssl-devel lynx gcc
- Instalamos algunos módulos faltantes para Perl con CPAN de la siguiente forma:
testsrv:~ # perl -MCPAN -e shell
cpan[1]> o conf prerequisites_policy follow
cpan[2]> o conf commit
cpan[3]> install Bundle::CPAN
cpan[4]> reload CPAN
cpan[5]> install LWP
cpan[6]> exit - Agregamos un nuevo grupo y usuario exclusivo para el sistema RT:
testsrv:~ # groupadd -r rt
testsrv:~ # useradd -m -d /opt/rt4 -g rt -r rt_user - Descargamos la última versión de la herramienta RT desde su sitio web, como gestor de descargas para este caso he utilizado la aplicación wget:
testsrv:~ # wget http://download.bestpractical.com/pub/rt/release/rt.tar.gz
- Descomprimimos el paquete de RT:
testsrv:~ # tar -xzf rt.tar.gz
- Luego accedemos al nuevo directorio creado en el paso anterior llamado rt-4.0.5:
testsrv:~ # cd rt-4.0.5
- A continuación procedemos a configurar el código fuente de la herramienta RT con una serie de parámetros importantes:
testsrv:~/rt-4.0.5 # ./configure --prefix=/opt/rt4 --with-web-user=rt_user --with-web-group=rt --with-db-database=rt4 --with-db-rt-pass=rt4 --with-db-type=mysql --with-rt-group=rt --with-apachectl=/usr/sbin/apache2ctl
- Antes de instalar la herramienta procedemos a instalar las dependencias aún faltantes, esta vez mediante la ejecución del comando make fixdeps que suele tardar bastante tiempo para culminar:
testsrv:~/rt-4.0.5 # make fixdeps
- Es posible que al finalizar la ejecución del comando anterior se nos informe que nos faltan instalar algunas dependencias más, en esos casos debemos buscar la forma de hacerlo, ya sea instalando el paquete con el comando zypper, buscando el paquete en software.opensuse.org e instalándose mediante el método 1-Click Install, o bien descargar el módulo de search.cpan.org y luego instalarlo según los pasos del archivo Readme.
- Una vez instalados los módulos faltantes debemos ejecutar el comando de verificación de dependencias que sigue a continuación:
testsrv:~/rt-4.0.5 # make testdeps
Si nuevamente se presenta alguna dependencia faltante, debemos instalar el paquete necesario para cumplir con el requisito y luego volver a ejecutar el comando make testdeps hasta tanto ya no surjan paquetes pendientes. Una vez que todas las dependencias hayan sido instaladas podemos continuar con el siguiente paso. - Procedemos a instalar la herramienta RT:
testsrv:~/rt-4.0.5 # make install
- Luego de ejecutar el comando del punto anterior debemos crear la base de datos en MySQL para la herramienta RT. Para ello debemos instalar el motor de base de datos MySQL, cuyos pasos ya se han documentado en esta bitácora, artículo que podrán encontrar en el resumen de guías. Teniendo listo el motor de base de datos podemos ejecutar el siguiente comando:
testsrv:~/rt-4.0.5 # make initialize-database
/usr/bin/perl -I/opt/rt4/local/lib -I/opt/rt4/lib sbin/rt-setup-database --action init --dba root --prompt-for-dba-password
In order to create or update your RT database, this script needs to connect to your mysql instance on localhost as root
Please specify that user's database password below. If the user has no database
password, just press return.
Password: <ponemos la contraseña del usuario root de mysql>
Working with:
Type: mysql
Host: localhost
Name: rt4
User: rt_user
DBA: root
Now creating a mysql database rt4 for RT.
Done.
Now populating database schema.
Done.
Now inserting database ACLs
Granting access to rt_user@'localhost' on rt4.
Done.
Now inserting RT core system objects
Done.
Now inserting data
Done inserting data
Done.
testsrv:~/rt-4.0.5 #OBS: El comando make initializa-database creará una nueva base de datos en MySQL con los nombres que se habían definido en los parámetros de ejecución del comando ./configure del paso 8.
- Para configurar la herramienta web RT se tiene que editar el archivo /opt/rt4/etc/RT_Config.pm, previa realización de una copia de seguridad del mismo:
testsrv:~ # cp /opt/rt4/etc/RT_Config.pm /opt/rt4/etc/RT_Config.pm.orig
Una vez editado el archivo podemos modificar la configuración de la herramienta cambiando los valores de las directivas, algunas de las cuales van a continuación:
testsrv:~ # vi /opt/rt4/etc/RT_Config.pm# CONFIGURACIONES DEL SITIO RT
Set($rtname , 'testsrv');
Set($Organization , 'GK');
Set($CorrespondAddress , 'admin@tormentadebits.com');
Set($CommentAddress , 'admin@tormentadebits.com');
Set($LogoURL, $WebImagesURL . 'yourlogo.gif');
Set($LogoLinkURL, 'http://testsrv/rt');
Set($LogoAltText, 'GK Corp.');
# CONFIGURACIONES PARA ACCESO A BASE DE DATOS:
Set($DatabaseType, 'mysql');
Set($DatabaseUser , 'rt_user');
Set($DatabasePassword , 'rt4');
Set($DatabaseName , 'rt4');
# RUTAS DEL WEBSERVER:
Set($WebPath , '/rt'); - Le asignamos el dueño wwwrun y grupo www a los directorios /opt/rt4/var/mason_data, /opt/rt4/var/mason_data/obj y en modo recursivo al directorio /opt/rt4/share. Este dueño y grupo es el que le dará al servicio Apache los permisos suficientes para operar en dichos directorios:
testsrv:~ # chown wwwrun:www /opt/rt4/var/mason_data
testsrv:~ # chown wwwrun:www /opt/rt4/var/mason_data/obj
testsrv:~ # chown -R wwwrun:www /opt/rt4/share - A continuación procedemos a configurar el servicio Apache para que pueda publicar la aplicación web RT, para ello debemos asegurarnos que el módulo perl para Apache se encuentre debidamente cargado:
testsrv:~ # vi /etc/sysconfig/apache2
APACHE_MODULES="actions alias auth_basic ... rewrite authz_svn perl" - Luego creamos un nuevo archivo de configuración en Apache para la herramienta web RT y lo abrimos:
testsrv:~ # touch /etc/apache2/conf.d/rt4.conf
Una vez abierto le agregamos el siguiente contenido:
testsrv:~ # vi /etc/apache2/conf.d/rt4.conf# Contenido para RT4
Contenido que por cierto ha cambiado con respecto a la versión 3.x de RT, para la cual se utilizaba el siguiente contenido ya desactualizado:
### Optional apache logs for RT
ErrorLog /opt/rt4/var/log/apache2.error
TransferLog /opt/rt4/var/log/apache2.access
AddDefaultCharset UTF-8
<Location /rt>
Order allow,deny
Allow from all
SetHandler modperl
PerlResponseHandler Plack::Handler::Apache2
PerlSetVar psgi_app /opt/rt4/sbin/rt-server
</Location>
<Perl>
use Plack::Handler::Apache2;
Plack::Handler::Apache2->preload("/opt/rt4/sbin/rt-server");
</Perl># Contenido para RT3
Alias /rt "/opt/rt4/share/html/"
PerlModule Apache::DBI
PerlHandler RT::Mason
PerlRequire /opt/rt4/bin/webmux.pl
<Directory "/opt/rt4/share/html/">
AllowOverride All
Order deny,allow
#Allow from 192.168.1.0/24
Allow from all
Deny from all
Options ExecCGI FollowSymLinks
AddDefaultCharset UTF-8
SetHandler perl-script
PerlHandler RT::Mason
</Directory> - El siguiente paso consiste en habilitar el puerto 80 en el cortafuegos para Apache, para ello editamos el archivo /etc/sysconfig/SuSEfirewall2:
testsrv:~ # vi /etc/sysconfig/SuSEfirewall2
- Buscamos la directiva FW_CONFIGURATIONS_EXT a la cual le agregamos los nombres de los servicios mysql y apache debiendo quedar similar a lo que sigue:
FW_CONFIGURATIONS_EXT="apache2 mysql sshd"
- Guardamos los cambios y reiniciamos el cortafuegos de openSUSE con el siguiente comando:
testsrv:~ # rcSuSEfirewall2 restart
- Finalmente reiniciamos el servicio Apache2.
testsrv:~ # service apache2 restart
- Podemos acceder a la herramienta RT mediante la siguiente URL:
http://nombre_o_ip_servidor/rt
- Para conectarnos por primera vez utilizamos el login root y la contraseña password, este usuario se crea durante la instalación y ya cuenta con los permisos de super-usuario para comenzar a configurar el entorno de RT.
Capturas de pantalla
Capturas de RT4:
Capturas de RT3:
Enlaces externos
- Sitio oficial de RT
- Wiki de RT
- Guía de instalación
- Introducción, instalación y utilización de RT: Parte1 y Parte2
Observaciones finales
- openSUSE i586
- MySQL 5
- Apache 2
- Request Tracker (RT) 4.0.5
- Perl 5
- FastCGI 2.4.x
Hola muy buen tutorial pero tengo una duda...
ResponderEliminar¿siguiendo los pasos logre instalar y usar la aplicacion en el puerto 8080.. no funciona el puerto 80 por defecto lo cual hace que la aplicacion a cada rato presente mensajes de advertencias que no esta en el puerto 80.
sabes algo de eso? saludos!
Hola Fernando, me parece que estás accediendo a la herramienta a través de un proxy. El puerto en que se encuentra disponible la herramienta depende exclusivamente del servicio Apache utilizado en el servidor, ya que es este al que se le configura para que atienda las peticiones en el puerto por defecto 80 o en otro puerto personalizado.
EliminarSaludos.
Buenos dias amigo Yody, buen tutorial me instalo y entro en mi localhost/rt y puedo ver el site. pero donde localizo el archivo index.html para realizarle modificaciones y poder personalizar el sistema?
ResponderEliminarespero tu respuesta saludos
Hola Josue, la verdad que no se si tiene algún archivo index.html, y no lo puedo comprobar porque no tengo la herramienta instalada, pero ¿ya te fijaste en el directorio /opt/rt4/share/html/?
EliminarTambién es posible que al acceder a la URL http://localhost/rt se este redirigiendo a algún manejador programado en Perl, habría que buscar, pero algo tiene que haber en algún lado que interprete y redirija a alguna archivo web en Perl, sinceramente no lo tengo muy claro como funciona Apache + Perl.
Saludos.