En este módulo, aprenderemos cómo gestionar nodos en Jenkins. Los nodos son máquinas que Jenkins utiliza para ejecutar trabajos. Pueden ser el nodo maestro (donde Jenkins está instalado) o nodos esclavos (máquinas adicionales que Jenkins puede utilizar para distribuir la carga de trabajo).
Conceptos Clave
- Nodo Maestro: Es el servidor principal donde Jenkins está instalado. Por defecto, todos los trabajos se ejecutan en el nodo maestro.
- Nodos Esclavos: Son máquinas adicionales que Jenkins puede utilizar para ejecutar trabajos. Ayudan a distribuir la carga de trabajo y pueden estar configurados para ejecutar trabajos específicos.
Configuración de Nodos en Jenkins
Paso 1: Acceder a la Configuración de Nodos
- Desde el tablero de Jenkins, haz clic en "Manage Jenkins" (Gestionar Jenkins).
- Selecciona "Manage Nodes and Clouds" (Gestionar Nodos y Nubes).
Paso 2: Agregar un Nuevo Nodo
- En la página de "Manage Nodes and Clouds", haz clic en "New Node" (Nuevo Nodo).
- Introduce un nombre para el nodo y selecciona "Permanent Agent" (Agente Permanente). Haz clic en "OK".
Paso 3: Configurar el Nodo
- Descripción: Proporciona una descripción para el nodo.
- Número de Ejecuciones: Define el número máximo de ejecuciones que este nodo puede manejar simultáneamente.
- Directorio Remoto: Especifica el directorio en el nodo esclavo donde Jenkins almacenará los archivos de trabajo.
- Etiquetas: Añade etiquetas para identificar el nodo. Esto es útil para asignar trabajos específicos a nodos específicos.
- Método de Lanzamiento: Selecciona cómo Jenkins se conectará al nodo esclavo. Las opciones comunes incluyen SSH y JNLP.
- Propiedades del Nodo: Configura propiedades adicionales como límites de tiempo de inactividad, variables de entorno, etc.
Ejemplo de Configuración de Nodo
Nombre del Nodo: nodo-esclavo-1 Descripción: Nodo esclavo para trabajos de compilación Número de Ejecuciones: 2 Directorio Remoto: /home/jenkins Etiquetas: compilación, linux Método de Lanzamiento: Launch agent via SSH - Host: 192.168.1.100 - Credenciales: jenkins-ssh-key
Paso 4: Guardar y Conectar el Nodo
- Haz clic en "Save" (Guardar) para guardar la configuración del nodo.
- Jenkins intentará conectarse al nodo esclavo utilizando el método de lanzamiento especificado. Si la conexión es exitosa, el nodo aparecerá como "Online" (En línea).
Ejercicio Práctico
Ejercicio 1: Configurar un Nodo Esclavo
- Accede a "Manage Jenkins" y selecciona "Manage Nodes and Clouds".
- Crea un nuevo nodo llamado "nodo-esclavo-2" con las siguientes configuraciones:
- Descripción: Nodo esclavo para pruebas
- Número de Ejecuciones: 1
- Directorio Remoto: /home/jenkins
- Etiquetas: pruebas, windows
- Método de Lanzamiento: Launch agent via SSH
- Host: 192.168.1.101
- Credenciales: jenkins-ssh-key
Solución
- Accede a "Manage Jenkins" y selecciona "Manage Nodes and Clouds".
- Haz clic en "New Node" y nombra el nodo como "nodo-esclavo-2".
- Selecciona "Permanent Agent" y haz clic en "OK".
- Configura el nodo con la descripción, número de ejecuciones, directorio remoto y etiquetas proporcionadas.
- Selecciona "Launch agent via SSH" y configura el host y las credenciales.
- Haz clic en "Save" y verifica que el nodo se conecte correctamente.
Errores Comunes y Soluciones
- Error de Conexión SSH: Asegúrate de que el nodo esclavo esté accesible desde el nodo maestro y que las credenciales SSH sean correctas.
- Permisos Insuficientes: Verifica que el usuario de Jenkins tenga los permisos necesarios en el nodo esclavo para acceder al directorio remoto y ejecutar comandos.
Resumen
En esta sección, hemos aprendido cómo gestionar nodos en Jenkins, incluyendo la configuración de nodos esclavos para distribuir la carga de trabajo. Hemos cubierto los pasos para agregar y configurar un nodo, así como algunos errores comunes y sus soluciones. Con esta base, estarás preparado para optimizar la ejecución de trabajos en Jenkins utilizando múltiples nodos.
Jenkins: De Principiante a Avanzado
Módulo 1: Introducción a Jenkins
Módulo 2: Conceptos Básicos de Jenkins
- Visión General del Tablero de Jenkins
- Creación y Ejecución de Trabajos
- Entendiendo las Pipelines de Jenkins
- Usando Plugins de Jenkins
Módulo 3: Pipelines de Jenkins
- Pipeline como Código
- Pipelines Declarativas vs Scriptadas
- Creando una Pipeline Simple
- Sintaxis de Pipeline
Módulo 4: Pipelines Avanzadas de Jenkins
- Etapas y Pasos de Pipeline
- Ejecución Paralela en Pipelines
- Usando Variables de Entorno
- Mejores Prácticas de Pipeline
Módulo 5: Administración de Jenkins
- Gestionando Nodos de Jenkins
- Configurando Seguridad
- Respaldo y Restauración de Jenkins
- Monitoreando Jenkins
Módulo 6: Integrando Jenkins
- Integración con Sistemas de Control de Versiones
- Integración con Herramientas de Construcción
- Integración con Herramientas de Pruebas
- Integración con Herramientas de Despliegue
Módulo 7: Jenkins para Integración Continua y Entrega Continua (CI/CD)
- Entendiendo CI/CD
- Configurando una Pipeline de CI
- Configurando una Pipeline de CD
- Automatizando Despliegues
Módulo 8: Temas Avanzados de Jenkins
- Usando Jenkins con Docker
- Jenkins y Kubernetes
- Jenkins como Código con Jenkinsfile
- Escalando Jenkins