martes, 3 de febrero de 2009

Exprimiendo a Hudson - Parte 2 (Administración)

De retorno de mis vacaciones donde procure no interactuar con ningun tipo de tecnología más que la de una piedra/martillo para poder clavar las estacas de una carpa, intentare continuar con Hudson.

Ya hice publicidad de las bondades de Hudson a la hora de administrar y configurar el servidor, asi que este post será muy sencillo. Como si no fuera suficientemente fácil, veremos que la UI de Hudson nos proporciona ayuda continuamente.

Vemos que en la pantalla de administración entre otras operaciones se nos permite configurar el servidor y manejar los plugins de extenciones. Veamos como configurar el servidor:

Hudson permite la ejecución concurrente de builds. Se denomina "executor" a un hilo del servidor que puede realizar builds. Por eso se nos recomienda llenar el campo # of executors con la cantidad de procesadores que cuenta el equipo donde se esta corriendo Hudson.

Tenemos la posibilidad de marcar un checkbox para habilitar la seguridad. Esto permitira configurar o correr un nuevo build sólo a los que se logueen con un usuario con rol "admin". Si Hudson esta desplegado sobre Tomcat, los usuarios y roles estan definidos en el archivo $TOMCAT_HOME/conf/tomcat-users.xml . Podemos ver como editar éste archivo en la parte 1 de este tutorial.

Además de la concurrencia, tenemos la posibilidad de definir agentes "esclavos" del master. Esto nos permitira la ejecución de los builds de forma distribuida.

Cuando un esclavo se registra al master, el master comienza la distribución de las cargas a los esclavos. La carga será balanceada dependiendo de la configuración particular de cada Job. Algunos proyectos pueden optar a "pegarse" a una máquina en particular para hacer el build, mientras que otros podrán optar por balancear su carga libremente entre los esclavos definidos. En algún futuro post publicaré como configurar Hudson para realizar builds de forma distribuida, por ahora, aqui un tutorial para ir aprendendiendo esta técnica.

Tambien podemos definir los path y conexiones a distintas herramientas que Hudson eventualmente pueda utilizar. Los campos a llenar son las instalaciones del JDK, Ant, Maven, y definir las conexiones a un servidor CVS y a un servidor SMTP para notificaciones por e-mail.

Obviamente si usamos Subversion como repositorio de código fuente, no llenaremos los campos de CVS. De forma similar, si no nos gusta Maven y solo usamos Ant para programar nuestros script de builds, no es necesario definir una instalación de Maven.

Como vemos completar una configuración estándar del servidor es totalmente visual y sencilla.

Para la próxima aprenderemos a crear Jobs para realizar buids de proyectos. A no desesperar, el tunning avanzado para exprimir Hudson vendrá más adelante, cuando ya dominemos "de taquito una integración continua base con Hudson.

1 comentario:

  1. Encontre este link que se ve muy copado leyendo en Java hispano...

    http://www.javahispano.org/contenidos/es/tutorial_para_montar_un_entorno_tdd_con_netbeans__hudson__subversion_y_ant/?menuId=ANNOUNCEMENTS

    Salu2
    http://lossoler.blogspot.com/

    ResponderEliminar