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

Instalar el maestro Jenkins

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?

  1. Instalar el maestro Jenkins
  2. Configurar credenciales maestras de Jenkins
  3. Configurar nodos de agente esclavo
  4. Agregar nuevos nodos esclavos
  5. Preparar nodos de agente esclavo para ejecutar la compilación
  6. 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.

Instalar el maestro Jenkins

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’.

Generar clave SSH

Configurar credenciales en Jenkins

Abra su tablero de Jenkins y haga clic en el menú ‘Credenciales’ a la izquierda.

Configurar credenciales en Jenkins

Y haga clic en el enlace de dominio ‘global’.

Ahora haga clic en ‘Agregar credenciales’.

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’.

elegir el método de autenticación

Y se ha creado la credencial de Jenkins con el método de clave de autenticación ssh.

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.

Instalar Java

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.

Agregar nuevo usuario de Jenkins

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.

Copie la clave SSH de maestro a esclavo

Paso 4: agregue nuevos nodos esclavos

En el tablero de Jenkins, haga clic en el menú ‘Administrar Jenkins’ y haga clic en ‘Administrar nodos’.

Agregar nuevos nodos esclavos

Haga clic en ‘Nuevo nodo’.

Nuevo nodo

Escriba el nombre de nodo ‘slave01’, elija el ‘agente permanente’ y haga clic en ‘Aceptar’.

nombre del nodo

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’.

información del nodo

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.

el servidor maestro está conectado a todos los nodos de agente

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’.

Preparar nodos de agente esclavo para ejecutar la compilación

Ahora vaya a la sección ‘Configuraciones de esclavos’ y defina todo lo que necesita como se muestra a continuación.

la sección 'Configuraciones esclavas'

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’.

Probando a Jenkins

Escriba el nombre del elemento, elija el proyecto de estilo libre y haga clic en ‘Aceptar’.

Agregar proyecto de estilo libre

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’.

Seleccione un nodo

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.

pagina 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’.

construir ahora

Y el siguiente es mi resultado.

Cree en el nodo de agente ‘slave01’.

Salida de resultados del script de Jenkins

Cree en el nodo de agente ‘slave02’.

Construir en el nodo 02

La instalación y configuración de la arquitectura maestro/esclavo de Jenkins y las compilaciones distribuidas de Jenkins se completó con éxito.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *