Modus

implementación-Jenkins

Implementación de Jenkins: Parámetros y Elementos externos

Como vimos en la primera parte, hemos elegido el flujo de trabajo siguiente:

Los paquetes ejecutables obtenidos por el Build de Talend Open Studio (TOS), se almacenan con versionado en un repositorio de Nexus.

Jenkins sacará la versión de producción. Puede ser una versión especifica o la última versión.

El paquete ejecutable Java es un archivo comprimido zip, que se debe extraer al espacio de trabajo de Jenkins. Jenkins, a continuación, lanza uno de los scripts del paquete que son bat, powershell ou shell según la plataforma del agente.

Un ejemplo de script Groovy completo (Jenkins File) se presentará en la tercera parte.

La instalación de Nexus se realiza según el procedimiento detallado en le pagina de Sonatype https://help.sonatype.com/repomanager3/product-information/download

Nexus puede instalarse en cualquier maquina de la red, siempre que se pueda acceder desde el agente y el controlador de Jenkins.

El código del servidor Nexus está en forma de archivo comprimido. El servidor se lanza mediante comando “nexus run/start”. El comando exacto se encuentra en la pagina de https://help.sonatype.com/repomanager3/installation-and-upgrades/installation-methods

Ejecutar Nexus como servicio en el servidor necesita pasos diferente descritos por plataforma https://help.sonatype.com/repomanager3/installation-and-upgrades/run-as-a-service

Se crea un repositorio de tipo Maven / Hosted que es el tipo adecuado para los artefactos de Java tales como un paquete construido por Talend.

Nexus

En Jenkins, para que la magia actué, hay que realizar esos ajustes:

  • Labels: Etiqueta para identificar la máquina aunque en principio, el controlador no servirá para ejecuciones, suelen identificar el sistema operativo o propiedades que permite al controlador de elegir la maquina para ejecutar una determinada tarea.
  • # of executors: En el caso de maquina de producción que se usa solamente como controlador 0, sino el nombre de hilos paralelos que se pueden ejecutar

URL IP y puerto de acceso en la red, evitando localhost

jenkins-location
  • No olvidar de añadir una variable para la URL del servidor Nexus, por ejemplo con nombre NEXUS_URL y valor http://IP_DE_NEXUS:PUERTO_DE_NEXUS
  • En el apartado “Nexus Repository Manager 3.x Server” se configura el acceso de escritura al servidor Nexus y así poder cargar los artefactos Java de Talend desde un proyecto de Jenkins
nexus-repository
  • En los ajustes a nivel de nodo, las variables globales para identificar el camino de acceso a carpetas de datos y/o herramientas. En el caso de plataforma basada en Unix hay que tener wget instalado. Se configuran a nivel de nodo, ya que pueden ser diferentes en cada máquina.

Con esos ajustes básicos, el controlador está preparado para funcionar, pero le falta definir nodos de ejecución. Por defecto ya existe el nodo del controlador (Built-In).

controlador-built-in

Hay una sección de configuración que permite de agregar nuevos nodos:

añadir-nodos-jenkins

En general, lo mejor es instalar el código del agente automáticamente desde el controlador conectándolo por SSH. En cambio, si el nodo es una maquina Windows, se aconseja de instalar manualmente el agente en la maquina y lanzarlo. El controlador genera una línea de comando única que permite al agente Windows de llamar al controlador cuando está activo.

agente-new-windows

Una vez acabada la configuración, se puede probar un primero proyecto freestyle para cargar nuestro primero artefacto en el repositorio Nexus.

 

Se crea un nuevo elemento de tipo “Freestyle Project”

jenkis-freestyle-proyect

Se añade un paso de publicación a Nexus 3:

publicacion-nexus-3

Puesto que hemos configurado el servidor se nos aparece en el menú:

servidor-configurado

Se escoge en el segundo menú el repositorio donde se quiere subir el artefacto

ponemos los identificadores del paquete et del artefato que tenemos que subir

identificadores

Guardar y ejecutar (Build en el idioma de Jenkins).

Jenkins nos indica que el build (la subida del artefacto, en nuestro caso) se ha ejecutado con éxito. Y podemos navegar en Nexus para ver el artefacto que acabamos de subir.

De la misma manera podríamos componer un proyecto para automatizar las etapas para seleccionar un artefacto de Nexus, descomprimir el archivo y ejecutar el script lanzador de Java. Como ya vimos, hacer un seguimiento de etapas múltiples vistas como un solo bloque, no es lo más cómodo. Sobre todo que Jenkins dispone de una modalidad que nos permite de ver el resultado de cada etapa por separado.

En la siguiente parte, veremos que los proyectos de tipo pipeline son la herramienta ideal para un seguimiento fino de ejecuciones de pasos múltiples.

Post relacionados