Herramienta Jenkins

Herramienta Jenkins
Información sobre la plantilla
Configuracion Jenkins2.png
Es de software libre que funciona como servidor de Integaracion Continua de código abierto, está basado en el proyecto Hudson, soporta herramientas de control de versiones como CVS, Subversion, Git y otros.Las notificaciones de resultados las realiza a través de correo electrónico.
LicenciaSoftware libre

Herramienta Jenkins. Es un software libre que funciona como servidor de Integración Continua de código abierto. Está basado en el proyecto Hudson. Soporta herramientas de control de versiones como CVS, Subversion, Git y otros. Las notificaciones de resultados las realiza a través de correo electrónico.

Definición

Jenkins es el servidor seleccionado como herramienta para el proceso de Integración Continua, haciendo énfasis en los siguientes aspectos:

  • Configuración fácil: Jenkins se puede configurar completamente desde su interfaz gráfica de usuario, fácil de usar con comprobaciones de errores extensas sobre la marcha y ayuda en línea. No hay necesidad de ajustar XML manualmente, aunque si desea hacerlo es posible
  • Integración de correo electrónico: genera resultados por correo electrónico para obtener notificaciones en caso de fracasos
  • Compatibilidad con plugins: puede extenderse a través de plugins. Permite al usuario escribir plugins para hacer que Jenkins admita herramientas y procesos

De manera general Jenkins como servidor de integración se acopla en su mayoría a las características de desarrollo existentes, siendo estas: de código abierto, software libre, alberga proyectos en el lenguaje PHP y otras que permiten su adecuada selección. Su fácil configuración y explotación puede ser aprovechado para observar rápidamente los resultados de su incorporación al ambiente de desarrollo.

Ventajas:

Una vez instalado Jenkins se hace necesario realizar las configuraciones pertinentes para que este ejecute las tareas de los proyectos. Jenkins brinda como ventaja gestionar todo su proceso de administración del servidor desde su interfaz gráfica de usuario. Desde la pantalla Administrar Jenkins se pueden gestionar los siguientes elementos; Configurar el sistema: configura variables globales y rutas

  • Actualizar configuración desde el disco duro: descarta todos los datos cargados en memoria y actualiza todo nuevamente desde los ficheros del sistema. Útil cuando se modifican ficheros de configuración directamente en el disco duro
  • Administrar Plugins: añadir, borrar, desactivar y activar plugins que extienden la funcionalidad de Jenkins
  • Información del sistema: muestra información del entorno que puedan ayudar a la solución de problemas
  • Registro del sistema: el log del sistema captura la salida de la clase en todo lo relacionado con Jenkins
  • Estadísticas de carga: comprobar la utilización de los recursos y comprobar si es necesario añadir nuevos nodos para la ejecución de tareas
  • Interfaz de línea de comandos (CLI) de Jenkins: accede y administra a Jenkins desde la consola o desde scripts

Además se puede obtener información acerca de:

  • Consola de script: ejecuta script para la administración, diagnóstico y solución del problema
  • Preparar Jenkins para apagar el contenedor: detener la ejecución de nuevas tareas para que el sistema pueda apagarse de manera segura
  • Configurar el sistema: configura variables globales y rutas
  • Actualizar configuración desde el disco duro: descarta todos los datos cargados en memoria y actualiza todo nuevamente desde los ficheros del sistema. Útil cuando se modifican ficheros de configuración directamente en el disco duro
  • Administrar Plugins: añadir, borrar, desactivar y activar plugins que extienden la funcionalidad de Jenkins
  • Información del sistema: muestra información del entorno que puedan ayudar a la solución de problemas
  • Registro del sistema: el log del sistema captura la salida de la clase en todo lo relacionado con Jenkins
  • Estadísticas de carga: comprobar la utilización de los recursos y comprobar si es necesario añadir nuevos nodos para la ejecución de tareas
  • Interfaz de línea de comandos (CLI) de Jenkins: accede y administra a Jenkins desde la consola o desde scripts
Además se puede obtener información acerca de:
  • Consola de script: ejecuta script para la administración, diagnóstico y solución del problema
  • Preparar Jenkins para apagar el contenedor: detener la ejecución de nuevas tareas para que el sistema pueda apagarse de manera segura


Administrar Jenkins.

  1. Activar seguridad del Jenkins

La configuración de Jenkins permite que todos los usuarios puedan modificar cualquier configuración del servidor. Para habilitar la seguridad se marca la opción Activar seguridad. La seguridad del servidor se puede llevar a cabo mediante varias vías. Se configurará a través de la opción Autenticación basada en usuarios para hacer uso de la misma. La autorización de los usuarios se define seleccionando cualquiera de las dos vías presentes en la opción Autorización para manejar el control de los usuarios del Jenkins.

  1. Herramienta de construcción

Jenkins necesita las variables de entorno de Phing para tener acceso a sus funcionalidades. Los valores son establecidos con los valores que tiene esta variable.


Mecanismo de retroalimentación

La notificación de los resultados de las tareas se realiza a través de correo electrónico como opción de comunicación que ofrece el servidor Jenkins. A continuación se ofrece la configuración del correo electrónico como mecanismo de retroalimentación. Para poder autenticarse y hacer uso de un servidor de correo (servidor SMTP de la UCI) es necesario establecer los siguientes parámetros: · Servidor de correo saliente (SMTP): dirección del servidor de correo · Sufijo de email por defecto: sufijo por defecto que se asocia a los usuarios del Jenkins con el servidor de correo · Sender E-mail addres: dirección completa del correo electrónico de los usuarios para ser configurados · Puerto de SMTP[[:]] puerto de comunicaciones del servidor del correo saliente.


Administrar extensiones La administración de los plugins, Jenkins la realiza desde su interfaz gráfica de usuario.

Para Jenkins extender sus funcionalidades permite instalar los plugins que son manejados desde su interfaz gráfica. La extensión de los plugins es .hpi y cada vez que son instalados es necesario reiniciar el Jenkins para obtener las nuevas funcionalidades. En la interfaz de Administrar plugins se realiza la gestión de las extensiones que se puede acceder desde Administrar Jenkins. Se pueden encontrar varias opciones como:

  • Actualizaciones disponibles: muestra las actualizaciones de los plugins instalados
  • Todos los plugins: muestra todos los plugins que se encuentran en la interfaz
  • Plugins instalados: muestra los plugins instalados
  • Configuración avanzada: configuración de los parámetros de conexión para la actualización y carga de plugins. Se puede encontrar el formulario para integrar nuevos plugins al Jenkins, se selecciona la ruta donde se encuentra el archivo .hpi y se presiona el botón subir para adicionar el plugin.


Acceso a la gestión de extensiones

El objetivo principal de la Integración Continua es automatizar tareas que en el servidor Jenkins son expresadas en proyectos. Por cada proyecto existente en Jenkins se ejecuta una serie de tareas. Seguidamente de configurado el servidor de Integración Continua se crea un proyecto que le da inicio al proceso de integración. Existen varias opciones para el tipo de proyecto con que se esté desarrollando. El tipo de proyecto a seleccionar es de Estilo libre ya que permite ejecutar el proyecto con cualquier modo de construcción o ejecución, así como también cualquier tipo de repositorio.

Creación de proyectos

Para añadir nuevos proyectos de estilo libre se debe seleccionar la opción Nueva Tarea, se selecciona la opción Crear un proyecto de estilo libre, se establece el nombre de un proyecto nuevo que permite crear un proyecto para proceder a la interfaz donde se configura el proyecto. Para controlar el número de construcciones almacenadas en el historial se puede establecer el número máximo de construcciones que se desea almacenar y el número de días para mantener ejecuciones anteriores, por tanto se selecciona la opción Desechar ejecuciones antiguas y llenar los parámetros con los valores deseados.

Origen del código fuente

Se establece el URL del repositorio Subversion y nombre del directorio. Se marca la opción Update default Subversion credentials cache after successful authentication que ejecutará un checkout (descargar) de las fuentes actualizando el código que se encuentra en el servidor de integración.


Disparadores de ejecuciones

Las contrucciones pueden configurarse para que sean lanzadas cada cierto tiempo o cuando se detecte un cambio en el Subversion. El lanzamiento de las construcciones diarias pueden lanzarse cada 8 horas, quedaría de tal manera (*/480****) y al repositorio las consultas podrían ser cada 4 horas (*/240****). Si Jenkins no encuentra cambios no ejecuta ninguna construcción.

Resultados

Una vez terminado el proceso de integración el Jenkins publica los resultados de todas las tareas ejecutadas. Donde se muestra en pantalla la Ejecución, la Fecha y el Estado de la tarea.

Mecanismo de retroalimentación

Jenkins se encarga de enviar notificaciones de resultados mediante vías de comunicación al equipo de desarrollo de los resultados de la construcción. Se configura para que las notificaciones lleguen en caso de que la construcción es fallida a los involucrados que incurrieron en el error.

Notificación vía correo

Para habilitar la notificación vía correo se activa la opción Notificación por correo, el campo destinatario se completa con las direcciones de usuario separadas por un espacio en blanco, se encuentran los disparadores: enviar correo para todas las ejecuciones con resultados inestables y enviar correos individuales a las personas que afecten el proyecto, seleccionándose la primera opción para que los miembros del equipo involucrados en una construcción fallida se le notifique el error.

BuildScript

El buildscript es el archivo build.xml que tiene como tarea ejecutar todo el proceso de construcción del Jenkins que trae consigo un conjunto de tareas para que sean ejecutadas.

Bibliografía

  1. Berzal, F. Pruebas de unidad con JUnit. 2008.
  2. Bergmann, S. PHPUnit Pocket Guide. 2007.
  3. Arnao, Dr. Edgar Eslava. Prospectiva estratégica y sobrevivencia empresaria. 2010.
  4. Morera, René Hernández. Componente para la configuración visual de los servicios de integración en el marco de trabajo Sauxe.2011.
  5. Using Phing, the PHP Build Tool C, Shameer. [En línea] 4 de junio de 2012. [Citado el: 20 de septiembre de 2012].