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:


Pasos de instalación

  1. 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
    
  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
    
  3. 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
    
  4. 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
    
  5. 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
    
  6. Descomprimimos el paquete de RT:
    testsrv:~ # tar -xzf rt.tar.gz
    
  7. Luego accedemos al nuevo directorio creado en el paso anterior llamado rt-4.0.5:
    testsrv:~ # cd rt-4.0.5
    
  8. 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
    
  9. 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
    
  10. 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.

  11. 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.

  12. Procedemos a instalar la herramienta RT:
    testsrv:~/rt-4.0.5 # make install
    
  13. 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.
  14. 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
    testsrv:~ # vi /opt/rt4/etc/RT_Config.pm
    
    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:
    # 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');
    
  15. 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
    
  16. 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"
    
  17. 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
    testsrv:~ # vi /etc/apache2/conf.d/rt4.conf
    
    Una vez abierto le agregamos el siguiente contenido:
    # Contenido para RT4
    ### 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 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:
    # 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>
    
  18. 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
    
  19. 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"
    
  20. Guardamos los cambios y reiniciamos el cortafuegos de openSUSE con el siguiente comando:
    testsrv:~ # rcSuSEfirewall2 restart
    
  21. Finalmente reiniciamos el servicio Apache2.
    testsrv:~ # service apache2 restart
    
  22. Podemos acceder a la herramienta RT mediante la siguiente URL:
    http://nombre_o_ip_servidor/rt
    
  23. 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



Observaciones finales

  • openSUSE i586
  • MySQL 5
  • Apache 2
  • Request Tracker (RT) 4.0.5
  • Perl 5
  • FastCGI 2.4.x
Nada mas que para finalizar quisiera comentar que con lo poco que he probado esta herramienta no puedo dar mayores referencias en cuanto a la metodología de uso, configuraciones avanzadas y demás. Queda a cargo de los lectores e interesados investigar sobre este tema, ya que como he dicho, yo no tengo previsto implementarla en ningún ambiente de producción.

Comentarios

  1. Hola muy buen tutorial pero tengo una duda...
    ¿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!

    ResponderEliminar
    Respuestas
    1. 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.

      Saludos.

      Eliminar
  2. 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?
    espero tu respuesta saludos

    ResponderEliminar
    Respuestas
    1. 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/?

      Tambié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.

      Eliminar

Publicar un comentario

Entradas populares