viernes, 23 de enero de 2009

Exprimiendo a Hudson - Parte 1 (Instalación)



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:
sudo apt-get install tomcat6 tomcat6-admin
  • 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:
sudo nano /var/lib/tomcat6/conf/tomcat-users.xml

<!--
<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 mkdir /home/hudson
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.
sudo gedit /etc/init.d/tomcat6

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.

6 comentarios:

  1. Interesante. El nuevo estilo del blog esta mucho mejor que el anterior conel fondo negro.

    ResponderEliminar
  2. Voy a seguir esta noticia, cuando puedas crear diferentes proyectos (EJB, Swing, Web, etc) e integrarlos todos para generar para cada uno su artefacto (ejb.jar, app.ear, web.war, swing.jar, ejecutable, etc) para diferentes ambientes (produccion, desarrollo, testing, etc) e integrar todo esto con una herramienta de tracking (JIRA, Mantis, Trac, etc) y, ademas, incluirlo como plugin en Netbeans o Eclipse...
    Te considerare una persona GROSA ... sino bue, m conformare con lo que postees...
    Vamos a ver que direccion toma esta noticia...
    Salu2 a la isla del yogurt !

    ResponderEliminar
  3. Este comentario ha sido eliminado por el autor.

    ResponderEliminar
  4. carrascofd:
    Es verdad el fondo negro era muy "geek" pero con este nuevo estilo es todo mas claro.

    Papa Soler:
    Ya se vienen las nuevas entradas de Exprimiendo a Hudson, solo me demore porque anduve de vacaciones, lejos de cualquier teclado de computadora. :D

    No solo veremos como generar builds de forma continua para proyectos Java, si no tambien para proyectos de C y otros lenguajes.

    ResponderEliminar
  5. Coincido que ayuda mucho a la lectura el nuevo estilo del blog.
    Con respecto a los temas, muy bueno el tema de Hudson espero poder ver más sobre esos temas, al igual que la integración con las otras herramientas.
    Destaco también el uso de los ejemplos en linux.
    Aunque también estaria bueno que pongas links a las utilidades y/o manuales o lugares donde se pueda obtener más información.

    ResponderEliminar
  6. hi, soy jose angel a mi no me funciono lo que mencionas no se si tenga que tener alguna variable configurada o que puedo hacer me urge configurar hudson

    ResponderEliminar