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

En el post anterior completamos la preparación del archivo WAR para hacer el deploy en el servidor de aplicaciones Tomcat 7 ahora configuraremos Tomcat 7 y nginx siguiendo los siguientes pasos:

Creamos un script para iniciar Tomcat como servicio creamos el archivo “tomcat” con el siguiente contenido:

#!/bin/bash
# description: Tomcat Start - Stop - Restart
# processname: tomcat
# chkconfig: 234 20 80
JAVA_HOME=/opt/tcjira/jdk1.7.0_21
export JAVA_HOME
PATH=$JAVA_HOME/bin:$PATH
export PATH
CATALINA_HOME=/opt/tcjira/tomcat7
source $CATALINA_HOME/bin/setenv.sh

case $1 in
start)
echo "Starting Tomcat"
/bin/su jira $CATALINA_HOME/bin/startup.sh
;;
stop)
echo "Stopping Tomcat"
/bin/su jira  $CATALINA_HOME/bin/shutdown.sh
;;
restart)
echo "Restarting Tomcat"
/bin/su jira  $CATALINA_HOME/bin/shutdown.sh
/bin/su jira  $CATALINA_HOME/bin/startup.sh
;;
*)
echo $"Usage: $0 {start|stop}"
exit 1
;;
esac
exit 0

agregamos el servicio al sistema, copiamos el script a /etc/init.d

cp tomcat /etc/init.d
chkconfig --add tomcat
chkconfig --level 3 tomcat on

# activamos el servicio postgresql para que inicie automatico
chkconfig postgresql-9.2 on

# verificamos los servicios
chkconfig --list | grep -i '3:on'

# iniciamos los servicios
service tomcat start
service postgresql-9.2 start 

# creamos el usuario y base de datos para jira
su - postgres
createuser -P jira
psql -d postgres

postgres=# CREATE DATABASE jiradb OWNER jira ENCODING 'UNICODE';

Por seguridad configuraremos Nginx como reverse proxy y usaremos un subdominio con el fin de acceder a la aplicacion web jira usando el puerto tcp 80 pasando por Nginx, en lugar de ir directo a Tomcat en el puerto tcp 8080.

server {
        listen  80;
        server_name     dev.h4v0k.com;
        
        access_log      off;

        location / {
                proxy_pass http://localhost:8080;
                proxy_read_timeout  10800s;
                proxy_set_header    Host            $host;
                proxy_set_header    X-Real-IP       $remote_addr;
                proxy_set_header    X-Forwarded-for $remote_addr;
                port_in_redirect off;
                proxy_redirect   http://dev.h4vok.com:8080/jira/  /;
                proxy_connect_timeout 300;
                add_header  X-Frame-Options SAMEORIGIN; 
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
                root   /srv/www/htdocs;
        }

}

luego modificaremos la configuracion de tomcat en server.xml para definir el proxy.

<Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" URIEncoding="UTF-8"
               proxyName="dev.h4v0k.com"
               proxyPort="80" 
/>

Para hacer el deploy de la aplicación se requiere una configuración mas en el Tomcat antes de iniciar. En el directorio “/opt/tcjira/tomcat7/conf/Catalina/localhost” creamos un archivo llamado “jira.xml” con lo siguiente:

<?xml version='1.0' encoding='utf-8'?>

<Context path="/jira" debug="0" useHttpOnly="true">
 
  <Resource name="UserTransaction" auth="Container" type="javax.transaction.UserTransaction"
      factory="org.objectweb.jotm.UserTransactionFactory" jotm.timeout="60"/>
        <Manager pathname=""/>
         
</Context>

En este archivo se define el contexto para el deploy de la aplicacion java, el path “/jira” sera el que utilizaremos para llegar a la aplicacion por lo deberemos renombrar el archivo WAR creado previamente y moverlo al folder de aplicaciones de Tomcat.

cd /opt/tcjira/atlassian-jira-6.0.1/dist-tomcat
mv atlassian-jira-6.0.1.war /opt/tcjira/tomcat7/webapps/jira.war 

con todo configurado correctamente, podremos ver en el log la inicialización de la aplicación y continuar la configuración con el wizard desde el navegador, donde se configurara la licencia y los parametros de la BD.

logs de apache tomcat:

Jira startup

postgresql 9.2

Postgresql 9.2 JDBC

Atlassian Jira funcionando

Jira running

Referencia:

JIRA Installation and Upgrade Guide

Running+the+Setup+Wizard

Installing JIRA on Tomcat 6.0 or 7.0

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

Continue reading “JIRA en Tomcat7 con Java7, PostgreSQL 9.2 y Nginx — parte 1”