Hudson es un CI Server o servidor de integración continua open source. Existen varios productos similares tales como Cruise Control o Continuum de Apache.
Lo que diferencia a Hudson del resto es su potencia mediante la extension por plugins y su facilidad de instalación, configuración y mantenimiento.
En esta primera entrega de una serie voy a explicar como desplegar Hudson en un Servidor Tomcat instalado en Ubuntu Intrepid Ibex, de todas formas en cualquier otra distro de Linux u otro S.O esto no debería ser muy diferente. En las próximas entradas veremos como integrar varias herramientas con los plugins de hudson para reporte de test, cobertura y análisis de código estático para métricas de QA.
Instalación:
- Paso 1: Descargamos hudson.war desde el sitio oficial o desde este link. Podemos probar hudson iniciándolo con el servidor embebido que trae simplemente con la orden java -jar hudson.war
- Paso 2: Para poder hacer uso de Hudson de forma profesional necesitamos desplegar el war en un contenedor de servlets/jsp como Tomcat. Necesitamos descargar los paquetes tomcat6 y tomcat6-admin. Esto podemos hacerlo desde el gestor de paquetes Synaptic o escribiendo en una terminal:
- Paso 3: Probamos si tomcat esta funcionando escribiendo en un browser: http://localhost:8080 . Si todo anda bien deberemos crear un usuario administrador con un rol. Para eso editamos el archivo tomcat-users.xml y luego reiniciamos el servidor:
<!--
<role rolename="tomcat"/>
<role rolename="role1"/>
<user username="tomcat" password="tomcat" roles="tomcat"/>
<user username="both" password="tomcat" roles="tomcat,role1"/>
<user username="role1" password="tomcat" roles="role1"/>
-->
<role rolename="manager"/>
<role rolename="admin"/>
<user username="user" password="secreto" roles="manager"/>
<user username="hudson-admin" password="secreto" roles="admin"/>
</tomcat-users>
- Paso 4: Abrimos el administrador de Tomcat, aquí nos pedira el usuario y contraseña que recien agregamos en tomcat-users.xml. Para esto escribimos la siguiente direccion en el browser: http://localhost:8080/manager/html. En la sección apropiada agregamos el archivo hudson.war para poder desplegarlo en el contenedor.
- Paso 5: Creamos el directorio de trabajo de Hudson y le otorgamos permisos:
sudo chmod 777 /home/hudson
- Paso 6: En el archivo /etc/init.d/tomcat6 agregamos a la variable JAVA_OPTS la variable -DHUDSON_HOME con el valor del directorio de trabajo de hudson que definimos en el paso 5.
JAVA_OPTS="$JAVA_OPTS -Djava.endorsed.dirs=$CATALINA_HOME/endorsed -Dcatalina.base=$CATALINA_BASE -Dcatalina.home=$CATALINA_HOME -Djava.io.tmpdir=$CATALINA_BASE/temp -DHUDSON_HOME=/home/hudson"
Bueno...ahora el ultimo paso es probar si hudson esta andando escribiendo en el browser la dirección: http://localhost:8080/hudson
Espero que les sirva y ante algún problemita ya saben, escribanme preguntando que por ahí a mi ya me paso. Hasta la próxima entrega.