Cómo configurar Jenkins Master y Slave en Ubuntu 18.04 LTS

Jenkins es un servidor de automatización derivado del proyecto Hudson, es compatible con muchos sistemas de software SCM (Source Control Management), incluidos Git, SVN y Mercurial. Jenkins proporciona cientos de complementos para automatizar su proyecto. Jenkins ofrece soporte para una arquitectura ‘maestro/esclavo’, lo que le permite alojar una gran cantidad de compilaciones de proyectos.
¿Cómo funciona el ‘maestro/esclavo’ de Jenkins?
La arquitectura maestro/esclavo de Jenkins se usa para entornos de compilación distribuidos, donde la carga de trabajo de los proyectos de compilación se distribuye a múltiples nodos de agentes y podemos usar diferentes entornos para cada compilación.
En la arquitectura ‘maestro/esclavo’ de Jenkins, un maestro se representa a sí mismo como una instalación básica de Jenkins y maneja todas las tareas para el sistema de compilación. El nodo maestro de Jenkins se usará para programar trabajos, monitorear nodos esclavos, enviar compilaciones a nodos esclavos, registrar y representar el resultado de la compilación y también ejecutar trabajos de compilación directamente.
Los nodos esclavos de Jenkins se configuraron para descargar proyectos de compilación del maestro y se requiere establecer una conexión entre el maestro y los esclavos. Los nodos esclavos de Jenkins pueden ejecutarse en una variedad de sistemas operativos como Windows y Linux, y no es necesario instalar paquetes completos de Jenkins.
En este tutorial, aprenderemos cómo configurar la arquitectura maestro-esclavo de Jenkins utilizando la última versión de Ubuntu Ubuntu 18.04 LTS. Aprenderemos a configurar el servidor maestro de Jenkins y luego agregaremos otros nodos de Ubuntu como esclavos de Jenkins.
requisitos previos
- Ubuntu 18.04
- maestro – 10.0.15.10
- esclavo01 – 10.0.15.21
- esclavo02 – 10.0.15.22
- Privilegios de raíz
¿Lo que haremos?
- Instalar el maestro Jenkins
- Configurar credenciales maestras de Jenkins
- Configurar nodos de agente esclavo
- Agregar nuevos nodos esclavos
- Preparar nodos de agente esclavo para ejecutar la compilación
- Pruebas
Paso 1 – Instalar Jenkins Master
En este tutorial, no cubriremos la instalación básica de Jenkins. Hay una serie de artículos sobre HowtoForge que cubren la instalación de Jenkins.
A continuación se muestra nuestro servidor maestro Ubuntu 18.04 con Jenkins instalado.
Paso 2: configurar las credenciales maestras de Jenkins
Cuando instaló el servidor maestro Jenkins, necesitamos configurar el servidor maestro en sí. De forma predeterminada, hay diferentes formas de iniciar los nodos de agente de Jenkins, podemos iniciar los nodos de agente a través de SSH, la cuenta administrativa de Windows y a través de Java Web Start (JNLP), elija la mejor manera según la configuración de su entorno y el sistema operativo.
Para esta guía, lanzaremos los nodos del agente a través de ssh y debemos configurar las credenciales de Jenkins en nuestro servidor maestro.
Generar clave SSH
Usaremos la autenticación de clave ssh para configurar nuestros nodos de agente, por lo que debemos generar la clave ssh para el usuario de Jenkins y luego cargar la clave en cada nodo de servidor manualmente usando ‘ssh-copy-id’.
En el servidor maestro de Jenkins, inicie sesión en el usuario de Jenkins y genere la clave ssh.
su - jenkins ssh-keygen
Y obtendrá la clave privada ‘id_rsa’ y la clave pública ‘id_rsa.pub’ en el directorio ‘.ssh’.
Configurar credenciales en Jenkins
Abra su tablero de Jenkins y haga clic en el menú ‘Credenciales’ a la izquierda.
Y haga clic en el enlace de dominio ‘global’.
Ahora haga clic en ‘Agregar credenciales’.
Ahora elija el método de autenticación.
- Tipo: Nombre de usuario SSH con clave privada
- Alcance: Mundial
- Nombre de usuario: jenkins
- Clave privada: ingrese directamente y pegue la clave privada ‘id_rsa’ del usuario de Jenkins desde el servidor maestro.
Haga clic en Aceptar’.
Y se ha creado la credencial de Jenkins con el método de clave de autenticación ssh.
Paso 3: configurar los nodos esclavos
Ahora configuraremos el servidor de nodos esclavos instalando Java en ese servidor y crearemos un nuevo usuario de Jenkins.
Instalar Java
Instale los paquetes ‘software-properties-common’ y agregue el repositorio java PPA.
sudo apt install software-properties-common apt-transport-https -y sudo add-apt-repository ppa:openjdk-r/ppa -y
Ahora instale java OpenJDK usando el comando apt a continuación.
sudo apt install openjdk-8-jdk -y
Una vez finalizada la instalación, compruebe la versión de Java instalada.
java -version
Y obtendrá Java OpenJDK 1.8 instalado en el sistema.
Agregar nuevo usuario de Jenkins
Ahora agregue el usuario ‘Jenkins’ a todos los nodos de agente.
Ejecute el siguiente comando.
useradd -m -s /bin/bash jenkins passwd Jenkins
Se ha creado el usuario ‘Jenkins’ para los nodos de agente.
Copie la clave SSH de maestro a esclavo
A continuación, debemos cargar la clave ‘id_rsa.pub’ del maestro a los nodos del servidor esclavo. Necesitamos cargar en cada nodo del servidor usando el comando ‘ssh-copy-id’ como se muestra a continuación.
ssh-copy-id [email protected] ssh-copy-id [email protected]
Escriba la contraseña de usuario de Jenkins.
La clave ssh ‘id_rsa.pub’ se cargó en todos los nodos de agente.
Paso 4: agregue nuevos nodos esclavos
En el tablero de Jenkins, haga clic en el menú ‘Administrar Jenkins’ y haga clic en ‘Administrar nodos’.
Haga clic en ‘Nuevo nodo’.
Escriba el nombre de nodo ‘slave01’, elija el ‘agente permanente’ y haga clic en ‘Aceptar’.
Ahora escriba los detalles de la información del nodo.
- Descripción: servidor de agente de nodo slave01
- Directorio raíz remoto: /home/jenkins
- Etiquetas: esclavo01
- Método de lanzamiento: inicie el agente esclavo a través de SSH, escriba la dirección IP del host ‘10.0.15.21’, elija la autenticación con la credencial ‘Jenkins’.
Ahora haga clic en el botón ‘Guardar’ y espere a que el servidor maestro se conecte a todos los nodos del agente e inicie los servicios del agente.
A continuación se muestran los resultados cuando el servidor maestro está conectado a todos los nodos de agentes.
Los nodos esclavos de Jenkins se han agregado al servidor maestro.
Paso 5: preparar los nodos de agente esclavo para ejecutar la compilación
En este paso, configuraremos el maestro Jenkins para ejecutar la compilación en los nodos del agente esclavo.
Haga clic en el menú ‘Administrar Jenkins’ y luego haga clic en ‘Configurar sistema’.
Ahora vaya a la sección ‘Configuraciones de esclavos’ y defina todo lo que necesita como se muestra a continuación.
Más información sobre las ‘Configuraciones esclavas’ en Enlace.
Haga clic en el botón ‘Guardar’ y ahora estamos listos para ejecutar la compilación en los nodos de agente esclavo.
Paso 6 – Prueba
Ahora queremos crear una nueva compilación simple para Jenkins, y queremos ejecutar la compilación en los nodos de agente ‘slave01’ y ‘slave02’ del bot.
En el tablero de Jenkins, haga clic en el menú ‘Nuevo elemento’.
Escriba el nombre del elemento, elija el proyecto de estilo libre y haga clic en ‘Aceptar’.
En la sección general, escriba la descripción del trabajo y marque la opción ‘Restringir dónde se puede ejecutar este proyecto’.
En la ‘Expresión de etiqueta’, especifique el nodo como ‘slave01’.
Vaya a la sección de compilación y elija la opción ‘Ejecutar shell’, escriba el comando como se muestra a continuación.
top -b -n 1 | head -n 10 && hostname
Haga clic en el botón ‘Guardar’ y será redirigido a la página de trabajo.
Haga clic en ‘Crear ahora’ para compilar el proyecto y luego haga clic en el elemento en la sección ‘Historial de compilación’.
Y el siguiente es mi resultado.
Cree en el nodo de agente ‘slave01’.
Cree en el nodo de agente ‘slave02’.
La instalación y configuración de la arquitectura maestro/esclavo de Jenkins y las compilaciones distribuidas de Jenkins se completó con éxito.