JIRA en Tomcat7 con Java7, PostgreSQL 9.2 y Nginx — parte 1

JIRA es una excelente herramienta para el tracking de tareas, bugs y seguimiento de proyectos, cuando se combina con el complemento para seguimiento de proyectos GreenHopper presenta la herramienta mas versátil para la aplicación de metodologías ágiles (Scrum, Kanban).

JIRA es ofrecida en diferentes planes, en la nube o alojado en la infraestructura propia y diferentes precios segun el numero de usuarios. Posee un precio accesible para equipos de 10 usuarios cuando se aloja en infraestructura propia ($10).

Atlassian ofrece el JIRA en paquete con un instalador o un WAR para desplegarse en un servidor de aplicaciones Java el cual utilizare en este post que es el primero de 2 partes, el la parte 2 se mostrara la configuración del Tomcat 7, la configuración inicial de Jira y finalmente Nginx como reverse proxy.

Según la documentación Postgresql 9.2 no esta oficialmente entre las bases de datos soportadas, pero me ha funcionado sin problemas, en la configuración también utilizare las ultimas versión de Java y Tomcat ademas de usar Nginx como reverse proxy, la instalación se llevara a cabo en Linux CentOS 6.4 x86 VPS (virtual sobre OpenVZ)

Necesitaremos descargar e instalar varios paquetes:

Para Postgresql necesitaremos los siguientes paquetes una vez instalado el paquete del repositorio:

# paquetes a descargar
postgresql 9.2 packages
postgresql92-9.2.4-1PGDG.rhel6.i686
postgresql92-contrib-9.2.4-1PGDG.rhel6.i686
postgresql92-libs-9.2.4-1PGDG.rhel6.i686
postgresql92-server-9.2.4-1PGDG.rhel6.i686
postgresql92-plpython-9.2.4-1PGDG.rhel6.i686

# Agregamos un poco de seguridad en pg_hba.conf
# TYPE  DATABASE        USER            ADDRESS                 METHOD
host    all             all             127.0.0.1/32            md5
host    all             all             ::1/128                 md5

# tambien necesitaremos el servidor web
nginx-1.4.1-1.el6.ngx.i386

Antes de descargar los herramientas creamos la cuenta para manejar tomcat y jira

useradd -d /opt/tcjira -m -c "Account for running Tomcat/JIRA" -s /bin/bash jira
passwd jira 
# crear jira home
su - jira
pwd
mkdir jira_home

Fijamos algunas variables de entorno en .bash_profile

# env vars for ant and java jdk.
ANT_HOME=$HOME/ant
JAVA_HOME=$HOME/jdk

PATH=$PATH:$HOME/bin:$ANT_HOME/bin:$JAVA_HOME/bin

export PATH ANT_HOME JAVA_HOME

Después de descargar las herramientas y descomprimirlas en el directorio de la cuenta creada previamente tendremos algo como lo siguiente.

lrwxrwxrwx  1 jira jira   16 Jun  4 21:08 ant -> apache-ant-1.9.1
drwxr-xr-x  6 jira jira 4096 May 15 20:36 apache-ant-1.9.1
drwxrwxr-x 12 jira jira 4096 Jun  4 23:58 atlassian-jira-6.0.1
lrwxrwxrwx  1 jira jira   11 Jun  4 21:15 jdk -> jdk1.7.0_21
drwxr-xr-x  8 jira jira 4096 Apr  4 05:52 jdk1.7.0_21
drwxrwxr-x 11 jira jira 4096 Jun 12 20:31 jira_home
drwxr-xr-x  9 jira jira 4096 Jun  4 20:51 tomcat7

Verificamos en el directorio de instalacion (atlassian-jira-6.0.1) exista el archivo entityengine.xml en la siguiente ruta
bajo el directorio “webapp/WEB-INF/classes” con las siguientes lineas:

<transaction-factory class="org.ofbiz.core.entity.transaction.JNDIFactory">
    <user-transaction-jndi jndi-server-name="default" jndi-name="java:comp/env/UserTransaction"/>
    <transaction-manager-jndi jndi-server-name="default" jndi-name="java:comp/env/UserTransaction"/>
</transaction-factory>

Apache Ant es utilizado para construir el archivo WAR que desplegaremos en el servidor Tomcat, pero antes de efectuar el build es necesario fijar la variable de entorno “JIRA_HOME”, agregar el driver JDBC de Postgresql en las librerías de Tomcat (copiar archivo jar en directorio “lib”).

export JIRA_HOME=/opt/tcjira/jira_home

Con respecto a las librerías en Tomcat, Atlassian proporciona un set de librerías que debe ser copiadas en el directorio “lib” de Tomcat, en el siguiente link se proporciona el archivo con las librerías necesarias.

Tomcat 7 JARs: http://www.atlassian.com/software/jira/downloads/binary/jira-jars-tomcat-distribution-6.0-tomcat-7x.zip

se debe asegurar de eliminarse versiones existentes de las librerías antes de copiarlas, también es necesario eliminar las librerías duplicadas dentro del directorio de instalación de jira en la siguiente ruta “webapp/jira/WEB-INF/lib”, una vez completado el proceso y todas las librerías en su lugar procedemos con el build del archivo “war” para ser desplegado en el servidor.

Completado el paso anterior ejecutamos el script “build.sh” en el directorio de instalación del Jira y tendremos una salida como la siguiente:

$ ./build.sh
Buildfile: build.xml

init:

clean:
Deleting directory /opt/tcjira/atlassian-jira-6.0.1/tmp/build
Deleting directory /opt/tcjira/atlassian-jira-6.0.1/dist-generic
Deleting directory /opt/tcjira/atlassian-jira-6.0.1/dist-tomcat
Deleting directory /opt/tcjira/atlassian-jira-6.0.1/tmp

compile:
Created dir: /opt/tcjira/atlassian-jira-6.0.1/tmp/build/war
Created dir: /opt/tcjira/atlassian-jira-6.0.1/dist-generic
Created dir: /opt/tcjira/atlassian-jira-6.0.1/dist-tomcat
Created dir: /opt/tcjira/atlassian-jira-6.0.1/dist-tomcat/tomcat-6
Copying 8954 files to /opt/tcjira/atlassian-jira-6.0.1/tmp/build/war
Copying 2 files to /opt/tcjira/atlassian-jira-6.0.1/tmp/build/war

war:
Building jar: /opt/tcjira/atlassian-jira-6.0.1/dist-generic/atlassian-jira-6.0.1.war
Building jar: /opt/tcjira/atlassian-jira-6.0.1/dist-tomcat/atlassian-jira-6.0.1.war
Building jar: /opt/tcjira/atlassian-jira-6.0.1/dist-tomcat/tomcat-6/atlassian-jira-6.0.1.war
Copying 1 file to /opt/tcjira/atlassian-jira-6.0.1/dist-tomcat/tomcat-4
Copying 1 file to /opt/tcjira/atlassian-jira-6.0.1/dist-tomcat/tomcat-5
Copying 1 file to /opt/tcjira/atlassian-jira-6.0.1/dist-tomcat/tomcat-5.5
Copying 1 file to /opt/tcjira/atlassian-jira-6.0.1/dist-tomcat/tomcat-6

--------------------------------------------------
Deployable WARs generated: 

TOMCAT:  /opt/tcjira/atlassian-jira-6.0.1/dist-tomcat/atlassian-jira-6.0.1.war
GENERIC: /opt/tcjira/atlassian-jira-6.0.1/dist-generic/atlassian-jira-6.0.1.war 


See http://www.atlassian.com/software/jira/docs/latest/servers/ for install instructions
--------------------------------------------------

Referencias:

Jira Documentation
Jira en Tomcat 6, 7

Author: rz0r

I’m computer programer, sysadmin, web developer, like video games, Linux and listen music.

One thought on “JIRA en Tomcat7 con Java7, PostgreSQL 9.2 y Nginx — parte 1”

Comments are closed.