www.linuxero.es

Si te gusta el software libre, este es tu sitio.

Instalación y configuración de RT 4.0 + OpenLdap + Sendmail + Centos 5 64 bits

RT o Request Tracker es un sistema de ticktes open source, que permite que los usuarios envíen sus problemas por email o por medio de un formulario. Se puede personalizar totalmente pudiendo adaptarlo a nuestras necesidades. Permite la creación de colas, grupos, campos personalizados, plantillas para las notificaciones, acciones para el ciclo de vida de las incidencias,etc

Esta aplicación está desarrollada con Perl y funciona con MySQl, PostgreSQL o Oracle.

Prerequisitos

Habilitamos repositorio rpmforge:

# wget http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el5.rf.x86_64.rpm
# rpm -Uvh rpmforge-release-0.5.2-2.el5.rf.x86_64.rpm

Lo deshabilitamos para utilizarlo solo cuando lo necesitemos:

Editamos el archivo /etc/yum.repos.d/rpmforge.repo y cambiamos a 0 el valor enabled.

Antes de proceder a instalar el rt vamos a descargarlo y ha instalar las dependencias necesarias para su funcionamiento.

# yum install --enablerepo=rpmforge rpm* nmap expect vsftpd lynx \
net-snmp* ntp* subversion subversion-devel mysql mysql-server \
mysql-devel screen perl-Crypt-PasswdMD5 graphviz.x86_64 php-xml php-cli \
php-mhash php-ldap php-devel php-pdo php-imap php-readline \
php-ncurses php-soap php-snmp php-common php-mcrypt php-odbc \
php-mbstring php-gd php-bcmath php php-xmlrpc php-pear php-mysql \
php-dba mod_perl-devel mod_auth_mysql mod_perl mod_authz_ldap \
gd gd-devel gd-progs gcc* httpd --exclude=gcc-java* --exclude=gcc4-java

Ahora vamos a instalar los módulos de perl que necesitamos:

# yum install perl-DBI perl-XML-LibXML-Common perl-XML-NamespaceSupport \
perl-IO-Socket-INET6 perl-LDAP perl-IO-Socket-SSL \
perl-Config-General perl-Mozilla-LDAP perl-XML-Grove perl-DBD-MySQL \
perl-Digest-HMAC perl-TimeDate perl-IO-String perl-HTML-Parser \
perl-XML-LibXML perl-Crypt-SSLeay perl-libxml-perl perl-XML-Dumper \
perl-String-CRC32 perl-Convert-ASN1 net-snmp-perl perl-Compress-Zlib \
perl-Socket6 perl-XML-SAX perl-HTML-Tagset perl-IO-Zlib \
perl-Mail-POP3Client perl-Net-DNS perl-NKF perl-XML-Parser \
perl-XML-Simple perl-BSD-Resource perl-Digest-SHA1 perl-Net-IP \
perl-SGMLSpm perl-Geo-IP perl-XML-Twig perl-Net-SSLeay \
perl-MailTools perl-libwww-perl perl-URI

Arrancamos mysql y httpd:
# /etc/init.d/httpd start
# /etc/init.d/mysql start

Los configuramos para que se arranquen automaticamente al iniciar el sistema:

# chkconfig httpd on
# chkconfig mysqld on

Instación y configuración Openldap

Lanzamos el siguiente comando para la instalación de los paquetes:

# yum install openldap.x86_64 openldap-servers.x86_64 db4-utils.x86_64

Vamos a crear la base de datos que contendrá el dominio linuxero.es. Editamos el fichero “/etc/openldap/slapd.conf” y añadimos lo siguiente:

---------------------------------------------------------
database        bdb
suffix          "dc=linuxero,dc=es"
rootdn          "cn=Manager,dc=linuxero,dc=es"

# Contraseña del usuario manager
rootpw          secret

# directorio para almacenar información del dominio
directory       /var/lib/linuxero

# Indices to maintain for this database
index objectClass                       eq,pres
index ou,cn,mail,surname,givenname      eq,pres,sub
index uidNumber,gidNumber,loginShell    eq,pres
index uid,memberUid                     eq,pres,sub
index nisMapName,nisMapEntry            eq,pres,sub

----------------------------------------------------------
Creamos el directorio linuxero y le damos permisos al usuario ldap:
# mkdir /var/lib/ldap/linuxero
# chown -R ldap.ldap /var/lib/ldap/linuxero

Arrancamos el openldap y lo ponemos para que se arranque automaticamente:

# /etc/init.d/ldap start
# chkconfig ldap on

4. Creamos la estructura del dominio, una rama llamada users y el usuario manager en el openldap con un archivo ldif como el siguiente:

----------------------------------------------------------

dn: dc=linuxero,dc=es
objectClass: domain
dc: linuxero

dn: cn=Manager,dc=linuxero,dc=es
objectClass: organizationalRole
cn: Manager
description: Directory Manager

dn: ou=users,dc=linuxero,dc=es
objectClass: organizationalUnit
objectClass: top
ou: users
----------------------------------------------------------

Podemos importar el ldif de forma muy sencilla con aplicaciones como Apache Directory Studio o jxplorer.

Arrancamos el Openldap:

# service ldap start

Os pongo un ejemplo de un ldif de un usuario con los atributos que vamos a utilizar en el rt:
----------------------------------------------------------
dn: uid=isaias,ou=users,dc=linuxero,dc=es
objectClass: person
objectClass: top
objectClass: inetOrgPerson
objectClass: organizationalPerson
cn: Isaias Aranda Cano
sn: Aranda Cano
givenName: Isaias
mail: isaias@linuxero.es
o: linuxero
telephoneNumber: 666996633
uid: isaias
userPassword: contraseña
----------------------------------------------------------

Instalación y configuración de RT

Nos descargamos el RT:

# wget http://download.bestpractical.com/pub/rt/release/rt-4.0.0.tar.gz
Lo descomprimimos y entramos dentro del directorio resultante:
# tar -xzvf rt-4.0.0.tar.gz
# cd rt-4.0.0

Instalamos un dependencia que no viene en los repositorios que tenemos:

# rpm -Uvh http://download.fedora.redhat.com/pub/epel/5/x86_64/epel-release-5-4.noarch.rpm
# yum install ncftp

Ahora vamos a configurar CPAN para comprobar e instalar las librerías que aun nos falten:

# perl -MCPAN -e shell

Basicamente presionaremos enter en todas las opciones para dejarlas como vienen por defecto excepto en la codificación que pulsaremos no para que se establezca como UTF-8.

Ahora procedemos a actualizar CPAN:

cpan> install install Bundle::CPAN

Una vez que ha terminado la actualización, lanzamos los siguientes comandos:

reload cpan
reload index

Presiona Si a todo.

Procedemos a configurar y corregir dependencias del rt:

# ./configure --enable-graphviz --enable-gd

Lanzamos el siguiente comando para chequear que estan todas las dependencias:

# make testdeps

Veréis varios errores con librerías de perl que faltan. Para que instle automaticamente las librerias que faltan ejecutamos el siguiente comando:

# make fixdeps

O también podemos utilizar el siguiente comando

# perl sbin/rt-test-dependencies --install

Ahora vamos a configurar el RT con todas las propiedades necesarias editando el archivo RT_SiteConfig.pm y añadiendo el siguiente contenido. Hay que adaptarlo a nuestro sistema.

######################
# Custom Site Config #
######################

Set( $rtname, 'linuxero');
Set($Organization , "soporte.linuxero.es");
Set($Timezone , 'Europe/Madrid');
Set($WebBaseURL , "http://soporte.linuxero.es");
Set($LogToSyslog , '');
Set($LogToScreen , 'error');
Set($LogToFile , 'error');
Set($LogDir , '/var/log/rt4');
Set($LogToFileNamed , 'rt4.log');
Set($OwnerEmail , 'isaiasss@gmail.com');
Set($CorrespondAddress  , 'soporte@linuxero.es');
Set($CommentAddress     , 'soporte@linuxero.es');
Set($SendmailPath       , "/usr/lib/sendmail");
Set($SendmailArguments  , "-oi -t");
Set($RTAddressRegexp , '^soporte(-com)?\@linuxero.es$');
1;
###############################################################

Hay que crear el directorio “/var/log/rt4″ y darle permisos al usuario apache:

# mkdir /var/log/rt4
# chown apache.apache /var/log/rt4

Ahora creamos la base de datos con el siguiente comando:

# make initialize-database

Ya solo nos queda arrancar el apache y entrar en la URL http://soportepre.linuxero.es

Integración de RT con OpenLdap

Instalamos la libreria de autenticación externa para perl:

# perl -MCPAN -e 'install RT::Authen::ExternalAuth'

Introducimos la siguiente configuración en el archivo RT_SiteConfig.pm:

----------------------------------------------------------------
Set( @Plugins, qw(RT::Authen::ExternalAuth) );
Set($ExternalAuthPriority, [ 'My_LDAP' ] );
 Set($ExternalInfoPriority, [ 'My_LDAP' ] );
 Set($ExternalServiceUsesSSLorTLS, 0);
 Set($AutoCreateNonExternalUsers, 0);

 Set($ExternalSettings, {
 'My_LDAP' => {

 'type' => 'ldap',
 'server' => 'localhost',
 'user' => 'cn=manager,dc=linuxero,dc=es',
 'pass' => 'secret',
 'base' => 'ou=users,dc=linuxero,dc=es',

 'filter' => '(objectclass=inetOrgPerson)',
 'd_filter' => '(objectClass=FooBarBaz)',

 'tls' => 0,
 'ssl_version' => 3,

 'net_ldap_args' => [ version => 3 ],
 'group' => '',
 'group_attr' => '',

 'attr_match_list' => [ 'Name', 'EmailAddress' ],
 'attr_map' => { 'Name' => 'uid',
 'Organization' => 'physicalDeliveryOfficeName',
 'WorkPhone' => 'telephoneNumber',
 'EmailAddress' => 'mail',
 'RealName' => 'cn',
 'ExternalAuthId' => 'uid',
 }
 }
 }
 );
----------------------------------------------------------------

Configuración de sendmail

por defecto sendmail no acepta correo desde fuera de localhost, por eso, es necesario configurarlo antes de enviar notificaciones.

Primero descomentamos la siguiente linea:

# vi /etc/mail/sendmail.mc
 dnl DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')

Para efectuar los cambios ejecutamos lo siguiente:

# m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf

Tu necesitas añadir tu servidor de correo para habilitar el relay:

# vi /etc/mail/access
 mailserver.linuxero.es	      RELAY

Reconstruimos la base de datos:

# makemap hash /etc/mail/access.db < /etc/mail/access

Ahora, añadimos una entrada para el alias del servidor RT:

# vi /etc/mail/local-host-names
 soporte.linuxero.es

Si utilizas smrsh (se utiliza por defecto normalmente) ejecuta:

ln -s /opt/rt4/bin/rt-mailgate /etc/smrsh/rt-mailgate

Finalmente reinicia el servicio sendmail:

# service sendmail restart

Integración con Apache

Para finalizar la configuración de RT sólo nos falta crear un virtualhost para publicarlo con apache. Hay varios metodos y configuraciones posibles, que podeis ver en el archivo “web_deployment.pod” situado dentro del directorio docs. En mi caso voy a configurar apache para que publique el rt mediante el módulo “mod_fcgid”. Para instalarlo simplemente hay que lanzar el comando:

# yum install mod_fcgid

Una vez instalado nos creado un archivo llamado rt4.conf en el directorio “/etc/httpd/conf.d” con el siguiente contenido:

----------------------------------------------------------------
 <VirtualHost soporte.linuxero.es>
 ### Optional apache logs for RT
 # Ensure that your log rotation scripts know about these files
 # ErrorLog /opt/rt4/var/log/apache2.error
 # TransferLog /opt/rt4/var/log/apache2.access
 # LogLevel debug

 AddDefaultCharset UTF-8

 Alias /NoAuth/images/ /opt/rt4/share/html/NoAuth/images/
 ScriptAlias / /opt/rt4/sbin/rt-server.fcgi/

 DocumentRoot "/opt/rt4/share/html"
 <Location />
 Order allow,deny
 Allow from all

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

Ahora solo nos queda reiniciar el apache y entrar al RT:

# service httpd restart

http://rt.linuxero.es

El usuario y contraseña del administrador es:

Usuario: root
Contraseña: password

Si hemos añadido usuarios a nuestro Openldap, podemos probar a entrar mediante el uid. Una vez logado con el usuario rt importara sus datos automaticamente. Existe una extension para importar los datos de todos los usuarios automaticamente. La podeis ver en el siguiente enlace:

http://search.cpan.org/dist/RT-Extension-LDAPImport/lib/RT/Extension/LDAPImport.pm

Espero que os sirva de ayuda para tener esta genial aplicación de gestión de incidencias.

Advertisement

Comments are closed.

Seguir

Get every new post delivered to your Inbox.