¿Te estás quedando sin ejecutores de Jenkins o estás atascado esperando trabajos en cola para tus trabajos de Jenkins en Windows? Si es así, necesitas configurar más agentes de Jenkins.
En este tutorial, aprenderás cómo agregar un nodo de Windows de agente de Jenkins para satisfacer una necesidad de recursos que crece constantemente en tu entorno de construcción de software!
Prerrequisitos
Para seguir este artículo, necesitarás lo siguiente.
- Una instalación de trabajo de un controlador de Jenkins igual o superior a 2.176.1, y en este artículo, el controlador se referirá como el nodo maestro.
- Cualquier instalación de SO de Windows compatible que se referirá como el nodo del agente de Jenkins.
¿Qué son los agentes de Jenkins y el controlador de agentes de Jenkins?
A core component of Jenkins is the job. Jobs are instances of build automation that run a defined set of tasks. Supporting different job configurations requires an automation system to distribute build jobs among different nodes, which is simply an environment containing a Jenkins agent or controller.
Los agentes de Jenkins se ejecutan en una variedad de entornos diferentes, como máquinas físicas, máquinas virtuales, clústeres de Kubernetes, e imágenes de Docker. Un agente de Jenkins es un ejecutable, que reside en un nodo, que es asignado por el controlador para ejecutar un trabajo.
Gestionar los diferentes agentes de Jenkins es tarea del controlador del agente, también conocido como nodo maestro. En una configuración de un solo nodo Jenkins, el controlador también puede actuar como agente Jenkins y ejecutar trabajos de construcción. A medida que los entornos se vuelven más complejos, esta configuración se vuelve limitante.
Evitar que el nodo maestro del controlador ejecute trabajos
Antes de poder agregar un agente adicional de Jenkins, primero debe eliminar el nodo maestro del grupo de agentes de construcción. Al quitar el nodo maestro de este grupo, se asegura de que el controlador tenga recursos adecuados para coordinar trabajos de construcción. A continuación, se indican los ajustes necesarios para evitar que el nodo maestro ejecute un trabajo.
- Acceda a la interfaz de usuario de Jenkins a través de un navegador. En este tutorial, el controlador de Jenkins utiliza la dirección
192.168.x.x:8080
.

2. Una vez que aparezca el panel de control de Jenkins, haga clic en el enlace Administrar Jenkins.

3. A continuación, haga clic en el enlace Configurar sistema desde la sección Configuración del sistema.

4. Desplácese hacia abajo en la página para localizar la configuración, # de ejecutores, y establezca el valor en 0
. Esta configuración impide que el nodo maestro o controlador ejecute cualquier trabajo de construcción.

0
.5. En la misma página, localice la URL de Jenkins. Cambie la URL a la dirección IP y puerto utilizados en el navegador, en lugar de localhost:8080
.
Un nodo de agente puede intentar usar
localhost
en lugar de la IP correcta al comunicarse con el controlador, si está configurado incorrectamente. Con la dirección IP correcta configurada, ¡puedes evitar futuros problemas de comunicación del agente!

6. Haz clic en Guardar para confirmar y aplicar los ajustes actualizados.
Configuración del puerto TCP para agentes entrantes
Para informar a los nodos de Agente de Jenkins de Windows cómo lanzar mejor el servicio de trabajo y comunicarse de vuelta al controlador, debes configurar la configuración del puerto TCP entrante. Definir la configuración del puerto TCP entrante asegura que el agente de Jenkins sepa cómo conectarse al controlador de Jenkins a través de la red.
- Navega nuevamente a la página de configuración de Administrar Jenkins desde el panel de control de Jenkins.
2. Como se muestra a continuación, haz clic en la sección de Configurar seguridad global para localizar las opciones del puerto TCP.

3. Desplázate hacia abajo para localizar la sección de Agentes y el Puerto TCP para agentes entrantes. Cambia la opción de Deshabilitar a Aleatorio. Con la configuración aleatoria, Jenkins selecciona un número de puerto disponible al azar y comparte ese número de puerto con un agente durante su conexión inicial al puerto HTTP de Jenkins.

4. Finalmente, haz clic en el botón Guardar para aplicar la configuración actualizada.
Crear un nuevo nodo de agente Jenkins en el controlador de Jenkins
Con todas las configuraciones apropiadas establecidas, es hora de crear el nuevo nodo del agente Jenkins. Antes de hacer esto, crea el directorio de trabajo en el nodo Windows. En el nodo Windows, crea el directorio C:\Jenkins.
Una vez creado el directorio de trabajo, sigue los pasos a continuación para configurar tu nuevo nodo.
- Desde el panel de control de Jenkins, haz clic en el enlace Administrar Nodos y Nubes.

2. Haz clic en el enlace Nuevo Nodo en el menú de la izquierda. Con solo el controlador como agente, la lista de Nodos solo mostrará el nodo maestro al principio.

3. Ingresa un Nombre del Nodo, que en este tutorial es MyWindowsAgent1
, pero puedes usar un identificador más apropiado para tu entorno, y selecciona la opción Agente Permanente. Con agentes adicionales, es posible que veas la opción Copiar Nodo Existente también. Finalmente, haz clic en el botón Ok.

4. Configura el nuevo agente con la siguientes configuraciones. Las opciones resaltadas en verde son los valores predeterminados.
- # de ejecutores: Normalmente corresponde al # de núcleos del agente. Un fragmento útil de PowerShell para encontrar eso es el siguiente.
- Directorio de Trabajo Remoto: C:\Jenkins
- Método de Inicio: Iniciar el agente conectándolo al maestro.

En un reciente artículo de soluciones de Cloudbees.com, las opciones de lanzamiento del agente han cambiado en versiones posteriores a la 2.176.1. Ahora, el “Lanzar agente a través de Web Start” es ahora “Lanzar agente conectándose al maestro“.
5. Haz clic en el botón Guardar y ve a la pantalla de la lista de nodos donde se mostrará el nuevo nodo del Agente Jenkins de Windows.
6. Haz clic en el nombre del nuevo nodo, MyWindowsAgent1
, para obtener los enlaces de instalación del agente.

7. Ahora abre una conexión de escritorio remoto (RDP) al nodo de Windows donde se alojará el agente Jenkins.
8. Ve a http://controllerip:port/computer/nodename
, a través de un navegador, en el futuro agente Windows.
9. Haz clic en el botón Lanzar para descargar el instalador del agente y comenzar la instalación del agente Jenkins.

Siguientes Pasos
Hay muchas formas de utilizar tus nuevos agentes. Desde ejecutar scripts de PowerShell en Jenkins hasta ejecutar Jenkins en Docker, descubrirás que hay muchas formas de automatizar tu entorno de construcción.