sábado, septiembre 05, 2009

Hudson en Tomcat6 y Ubuntu 9.04

El objetivo de esta entrada es mostrar el proceso de instalación de Hudson sobre un Apache Tomcat y en un Ubuntu 9.04.

Hudson es una herramienta de integración continua desarrollada en java que se ejecuta como servlet. Puede ejecutarse en un contenedor de servlets, como pueden ser (entre muchos otros) Apache Tomcat o el servidor de aplicaciones GlassFish.
Soporta control de versiones, incluyendo CVS, Subversión, Git y Clearcase y puede ejecutar proyectos Ant y de tipo Maven, así como scripts de shell y ficheros bat de Windows.

Las compilaciones se pueden iniciar de varias maneras, planificandolas mediante un mecanismo similar a cron, iniciandose cuando otras ya han terminado, o por una petición específica mediante url.

Hudson es un proyecto de Software Libre.

Una vez que hemos comentado brevemente lo que es Hudson vamos a proceder con su instalación.
En primer lugar necesitaremos un contenedor de servlets. En nuestro caso usaremos un servidor Apache Tomcat 6.

Necesitaremos tener la Jdk de Sun. Para ello podemos hacerlo descargandonos el instalador de la página web de sun, como se explica en este enlace, o bien al estilo debian (recomendado) como se explica en este otro enlace:
sudo aptitude install sun-java6-fonts sun-java6-jre sun-java6-plugin
Si se ha instalado correctamente, al ejecutar en un terminal el comando 'java -version', debería de aparecer algo parecido a lo siguiente:
jsanchez@Alboran:~$ java -version
java version "1.6.0_14"
Java(TM) SE Runtime Environment (build 1.6.0_14-b08)
Java HotSpot(TM) Server VM (build 14.0-b16, mixed mode)

Una vez instalada la JDK de Java, procedemos a instalar el Apache Tomcat 6, para ello introducimos en el terminal lo siguiente:

sudo apt-get install tomcat6-docs tomcat6-admin

Antes de poder usar el Tomcat, deberemos editar algunos parámetros de configuración. Editaremos el fichero /etc/default/tomcat6 y reemplazaremos las siguientes lineas:
  1. #JAVA_HOME=/usr/lib/jvm/openjdk-6-jdk --> JAVA_HOME=/usr/lib/jvm/java-6-sun
  2. CATALINA_BASE=/var/lib/tomcat6
Además de lo anterior se han de modificar unas variables de entorno (o crearlas si fuera necesario). Ello se hará modificando el fichero /etc/environment
CATALINA_OPTS=-server -Xms384M -Xmx512M
ANT_HOME=/usr/share/ant
Para finalizar hemos de editarel fichero de inicio del servicio de Tomcat /etc/init.d/tomcat6 donde estableceremos TOMCAT_SECURITY=NO.

En este punto ya podemos reiniciar el servicio mediante
sudo /etc/init.d/tomcat6 restart
Deberíamos de poder probar su correcto funcionamiento lanzando un navegador sobre http://localhost:1000/.


PantallazoTomcat


Podremos ver la página de inicio, pero no podremos entrar en el administrador puesto que no tenemos clave. Para ello editaremos el fichero /etc/tomcat6/tomcat-users.xml añadiendo lo siguiente:

< role rolename="manager"/ >
< user username="tomcat" password="s3cret" roles="manager"/ >

Una vez reiniciado de nuevo el tomcat podremos entrar con el usuario y contraseña especificado en el fichero (se puede cambiar).

A partir de este momento ya tenemos nuestro Tomcat funcionando correctamente.



Para instalar Hudson debemos descargarlo de su página web y descargamos la última versión disponible (latest). La descarga consistira en un fichero de extensión war (hudson.war).

Una vez descargado, accedemos al gestor de administración del Tomcat http://localhost:8080/manager/html donde le indicaremos que queremos desplegar una war indicándole la ruta del fichero hudson.war que acabamos de descargar.

Una vez desplegado el war en el sitio adecuado (se hace automáticamente), en la lista de aplicaciones nos aparece una nueva con el nombre de hudson. Pulsamos en arrancar para lanzar la aplicación, y si todo va bien veremos una pantalla de este estilo.

Hudson arrancando

Pantallazo_Hudson_Arrancando



Hudson arrancado

Pantallazo_Hudson_Arrancado