GNU/Linux >> Tutoriales Linux >  >> Ubuntu

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 Jenkins 'maestro/esclavo'?

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

  • Ubuntu 18.04
    • maestro - 10.0.15.10
    • esclavo01 - 10.0.15.21
    • esclavo02 - 10.0.15.22
  • Privilegios de raíz

¿Qué haremos?

  1. Instalar 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.

  • Instalar Jenkins en Ubuntu 16.04
  • Instalar Jenkins en Ubuntu 18.04
  • Instalar Jenkins en CentOS 7

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 con 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 panel de control 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:Global
  • 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.

Añadir nuevo usuario de Jenkins

Ahora agregue el usuario 'Jenkins' a todos los nodos de agentes.

Ejecute el siguiente comando.

useradd -m -s /bin/bash jenkins
passwd Jenkins

Se ha creado el usuario 'Jenkins' para los nodos de agentes.

Copiar la clave SSH del maestro al esclavo

A continuación, debemos cargar la clave 'id_rsa.pub' del maestro a los nodos del servidor esclavo. Necesitamos subir a 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:agregar 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 usando 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.

Se agregaron nodos esclavos de Jenkins 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 el 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 panel de control 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 Jenkins se completó con éxito.

Referencias

  • https://wiki.jenkins.io/

Ubuntu
  1. Cómo configurar el servidor Rsyslog en Ubuntu 18.04 LTS

  2. Cómo actualizar a Ubuntu 22.04 LTS desde Ubuntu 20.04 LTS y 21.10

  3. Cómo instalar Libreoffice 4.3 en Ubuntu 12.04 y 14.04 LTS

  4. Cómo instalar Libreoffice 4.4 en Ubuntu 15.04 y 14.04 LTS

  5. Cómo configurar Elasticsearch en Ubuntu 18.04 y 16.04 LTS

Cómo configurar y usar Google Drive en Ubuntu 22.04 LTS

Cómo instalar el servidor DNS maestro y esclavo BIND9 en Ubuntu

Cómo instalar Jenkins en Ubuntu 16.04 LTS

Cómo configurar el cortafuegos UFW en Ubuntu 18.04 LTS

Cómo instalar Jenkins en Ubuntu 18.04 LTS

Cómo configurar el servidor y el cliente NTP en Ubuntu 20.04 LTS