Mi Blog

No te olvides seguirme en Facebook.

Tan solo tienes que hacer click en Me Gusta

 

 

x

⋆ Cómo añadir un nodo esclavo Windows a Jenkins

⋆ Cómo añadir un nodo esclavo Windows a Jenkins

(Tiempo estimado: 6 - 11 minutos)

Jenkins permite conectar nodos esclavos (slave nodes) con diferentes Sistemas Operativos (Windows, GNU/Linux, Mac OS, Unix etc...) Los nodos esclavos son los encargados de ejecutar los Jobs en Jenkins para distribuir la carga entre los equipos y el servidor Jenkins es quién realiza la orquestación de las tareas.

Seguid leyendo y os enseñaré cómo podéis conectar nuevos nodos Windows a vuestro servidor de Jenkins...

 

 

¿QUÉ ES JENKINS?

Jenkins es un servidor de automatización open source escrito en Java. Está basado en el proyecto Hudson y es, dependiendo de la visión, un fork del proyecto o simplemente un cambio de nombre.

Jenkins ayuda en la automatización de parte del proceso de desarrollo de software mediante integración continua y facilita ciertos aspectos de la entrega continua. Admite herramientas de control de versiones como CVSSubversionGitMercurialPerforce y Clearcase y puede ejecutar proyectos basados en Apache Ant y Apache Maven, así como secuencias de comandos de consola y programas por lotes de Windows. Publicado bajo licencia MIT, Jenkins es software libre.

Principales características:

  • Puede orquestar cualquier tipo de proceso.
  • Utilizada para ejecutar tareas manuales, periódicas o automáticas.
  • Cuenta con más de 1400 plugins
  • Puede aumentar su capacidad de cómputo añadiendo nuevos agentes o servidores
  • Fácil de usar
  • Dashboard para visualizar estado de tareas.

 

También es posible utilizar Jenkins para:

  • Permite ejecución de procesos secuenciales
  • Monitoreo de procesos
  • Permite ejecución a horas determinadas
  • Ejecución en base a eventos
  • Ejecución distribuida en varias máquinas
  • Alertas ante problemas en algún proceso

 

Web: https://jenkins.io/

 

 

Jenkins permite tener nodos esclavos funcionando con Windows

 

 

1.- ELEMENTOS NECESARIOS PARA ESTE TUTORIAL

  • Un PC con Jenkins ( v2.222.1 en este ejemplo )
  • Otro PC con Windows ó una VM para hacer como cliente
  • Conexión a Internet (casi imprescindible)

 

 

2.- AÑADIR NODO EN JENKINS

Para añadir un nuevo nodo, deberemos entrar como Administradores en Jenkins, y en el menú izquierdo hacer click en "Administrar Jenkins":

Slave Jenkins WindowsAdministrar Jenkins

 

 

Una vez dentro del panel de administración, deberemos buscar la opción de "Administrar Nodos" y hacer click para continuar:

Slave Jenkins WindowsAdministrar Nodos

 

 

En el listado de nodos esclavos, haremos click en "Nuevo nodo" para añadir el nuevo equipo junto a su configuración:

Slave Jenkins WindowsAñadir nuevo nodo

 

 

En el siguiente paso, introduciremos el nombre del equipo. Es preferible no utilizar espacios aunque si es posible hacerlo. En este ejemplo, el nombre de nuestro nodo cliente será Windows_Nodo_1 y marcaremos el nodo como Permanente y haremos click en OK:

Slave Jenkins WindowsNombre del nodo y tipo

 

 

En la siguiente pantalla, introduciremos los siguientes datos y haremos click en "Guardar":

  • Nombre: Windows_Nodo_1
  • Número de ejecutores: 1
  • Directorio raíz remoto: C:\Jenkins
  • Usar: Dejar este nodo para ejecutar solamente tareas vinculadas a él.
  • Método de ejecución: Conectar el agente cliente desde el cliente al master
  • Disponibilidad: Mantener conectado el agente lo máximo posible

 

Slave Jenkins WindowsConfiguración del nodo

 

 

Una vez añadido el nuevo nodo, podremos verlo en el listado de nodos pero con una cruz roja que significa que está desconectado:

Slave Jenkins WindowsListado de nodos

 

 

 

 

3.- CONFIGURACIÓN DEL NODO ESCLAVO

Para conectar el nodo cliente Windows al nodo Master de Jenkins, haremos click primero en el nuevo nodo en Jenkins y así poder ver como conectar el nodo. El método JNLP ha quedado deprecado y no podremos seleccionarlo desde la administración de Jenkins, por tanto, hay que conectarlo de otra forma que explicaré a continuación.

Slave Jenkins WindowsInfo para conectar el esclavo al servidor

 

 

En el nodo cliente, deberemos ir a la página web https://repo.jenkins-ci.org/releases/com/sun/winsw/winsw/ y descargar la última versión de Winsw. En este ejemplo la versión utilizada ha sido la 2.4.0:

Slave Jenkins WindowsDescargar Winsw

 

 

Guardaremos el fichero bajado en el directorio C:\Jenkins\  (debe coincidir en el directorio remoto configurado en el nodo cliente de Jenkins) y le cambiaremos el nombre a jenkins-slave.exe:

Slave Jenkins WindowsWinsw 2.4.0 NET Framework 4

 

 

Antes de instalar winsw como servicio, es necesario instalar varias cosas en el nodo cliente:

Si instalamos winsw-2.4.0-bin.exe, deberemos instalar Java JDK o JRE. En este ejemplo se instaló JDK 1.8.0_u241. Si instalamos winsw-2.4.0-net4.exe, deberemos instalar aparte de Java JDK o JRE, Microsoft NET Framework 4.0 o superior. El paquete JDK/JRE debemos descargarlo desde la Web Oficial de Oracle.

Una ves que tenemos todo instalado, crearemos un fichero llamado jenkins-slave.xml dentro de C:\Jenkins con el siguiente contenido (tened en cuenta que hay parámetros que debéis adaptar) por ejemplo, el nombre del nodo, la version de Java, la URL de Jenkins...

<service>
<id>Jenkins_Slave</id>
<name>Jenkins_Slave</name>
<description>This service runs a slave for Jenkins continuous integration system.</description>
<executable>C:\Program Files\Java\jdk1.8.0_241\bin\java.exe</executable>
<arguments>-Xrs -Dsun.jnu.encoding=UTF-8 -Dfile.encoding=UTF-8 -jar "%BASE%\agent.jar" -jnlpUrl http://192.168.1.49:8080/computer/Windows_Nodo_1/slave-agent.jnlp -secret a8c3b02687b554bf141fe4b340eeed052d8156a12381d384d8fd767a8037872c</arguments>
<logmode>rotate</logmode>
<onfailure action="restart" />
</service>

 

 

Abriremos un CMD como Administrador y ejecutaremos el siguiente comando para instalar el servicio de Jenkins en el esclavo:

jenkins-slave install 

Slave Jenkins WindowsInstalar servicio de Jenkins

 

 

Podemos arrancar el servicio desde la lista de servicios de Windows ejecutando services.msc ó bien desde el CMD con "jenkins-slave start".

Slave Jenkins WindowsIniciar servicio

 

 

El comando jenkins-slave.exe dispone de mas opciones que pueden ser visualizadas con el comando /?:

Slave Jenkins WindowsOpciones de jenkins-slave.exe

 

 

En el directorio C:\Jenkins\ se guardarán los logs donde podemos ver el procedo del agente de Jenkins. En este ejemplo se puede ver como el agente conecta correctamente:

Slave Jenkins WindowsLogs

 

 

En Jenkins podremos ver el siguiente mensaje que indica que el nodo esclavo está conectado "Agent is connected":

Slave Jenkins WindowsNodo conectado a Jenkins

 

 

En el listado de nodos podremos ver el estado de todos los nodos conectados al servidor de Jenkins:

Slave Jenkins WindowsListado de nodos

 

 

ENJOY!


Raúl Prieto Fernández

Sitio Web: raulprietofernandez.net

Si quieres ir rápido, ve solo. Si quieres llegar lejos, ve acompañado.

Escribir un comentario

Código de seguridad
Refescar