GNU/Linux >> Tutoriales Linux >  >> Linux

Configuración de la integración continua con GitLab, Jenkins y SonarQube

Este tutorial trata sobre la integración continua entre GitLab, Jenkins y SonarQube. Al final de este tutorial, podrá ver los informes de calidad de los códigos del repositorio de GitLab en SonarQube utilizando Jenkins como integrador continuo y sonar-scanner como analizador de código.

Configuración de integración continua con GitLab, Jenkins y SonarQube

Antes de ver cómo configurar la integración continua (CI), primero veamos los componentes involucrados y qué roles juegan en nuestra configuración aquí.

GitLab

GitLab es una plataforma de alojamiento de código de fuente abierta para colaboración y control de versiones. Se puede instalar en sus servidores para alojar sus códigos de forma privada. GitLab proporciona una funcionalidad de gestión de código fuente (SCM) similar a GitHub y BitBucket.

Jenkins

Jenkins es un servidor de integración continua de código abierto. Es una herramienta de automatización que se puede usar para probar y compilar sus códigos, e implementarlo en producción si la compilación tiene éxito.

Jenkins aquí se usa para extraer los códigos de GitLab (en tiempo real, cuando el código se inserta o fusiona), crea los códigos del proyecto y envía el resultado a SonarQube para su interpretación visual.

SonarQube

SonarQube es un servidor de inspección continua de código abierto. Es una herramienta utilizada como puerta de calidad para la revisión de código. Proporciona informes automáticos de análisis de códigos, detecta errores, vulnerabilidades de seguridad, códigos duplicados, comentarios, olores de código y muchos más para variedades de lenguajes de programación.

Requisitos previos

Este tutorial asume que GitLab, Jenkins y SonarQube ya se han instalado en su sistema Linux. La instalación de estas herramientas no es nuestro enfoque aquí.

Ahora que conoce las herramientas involucradas y sus roles, veamos cómo configurar nuestra integración continua

Paso 1. Configuraciones en Sonarqube

Requerimos token de autenticación del servidor de SonarQube, que luego pasamos a Jenkins. Este token da acceso a Jenkins, para impulsar las compilaciones de Jenkins en SonarQube para el análisis de código.

  • Ir a Mi Cuenta> Seguridad
  • En fichas bloque, ingrese cualquier texto para generar un token.
  • Conserve la copia del token

Aquí está la revisión de SonarQube generando token de usuario:

Ahora, crearemos un Proyecto donde se publiquen todos los informes de análisis de código.

  • Ir a Administración> Proyectos> Administración
  • Haga clic en Crear proyecto
  • Cree el proyecto con su Project_name y Project_key. Copie el nombre y la clave del proyecto. Pasaremos estas credenciales en la configuración de Jenkins más adelante.

Vista previa de la creación de un proyecto:

Paso 2. Configuración en GitLab

También necesitamos los tokens de acceso del usuario de GitLab que luego pasamos a Jenkins. Esto se usa para autenticar la URL del repositorio del usuario de GitLab, de donde Jenkins extrae los códigos.

  • Ir a Configuración de usuario menú Configuración del formulario.
  • Ir a Tokens de acceso
  • Cree un token de acceso personal agregando cualquier nombre único (Nombre ) y la fecha de caducidad del token (Caduca a las ). Configure también los Ámbitos a api- Acceso completo.

Vista previa de la generación de tokens de acceso de usuario:

Paso 3. Configuración en Jenkins

Necesitamos configurar GitLab y SonarQube en el panel web de Jenkins. Para esto, necesitamos instalar algunos complementos necesarios.

  • Iniciar sesión en Jenkins
  • Ir a Administrar Jenkins> Administrar complementos
  • En Disponible pestaña, busque GitLab y SonarQube e instale los siguientes complementos:
  • Complemento de enlace de GitLab
  • Complemento GitLab
  • Git
  • Escáner SonarQube para Jenkins

Requerimos Escáner SonarQube para instalarse en el "servidor Jenkins", que en realidad inicia el análisis de código y publica los informes para proyectar en SonarQube.

Para instalar SonarQube Scanner, puede usar los siguientes comandos:

$ wget https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-3.3.0.1492-linux.zip
$ unzip sonar-scanner-cli-3.3.0.1492-linux.zip 
$ cd sonar-scanner-3.3.0.1492-linux $ pwd 

Copia la ubicación. Tendremos que agregar esta ubicación (como Carpeta de inicio de instalación del escáner SonarQube) en Configuración de Jenkins.

También configuraremos el archivo de propiedades del escáner de sonda al agregar el servidor de SonarQube:

$ cd conf 
$ vi sonar-scanner.properties

Descomente “sonar.host.url” y agregue la URL de su servidor SonarQube

Ahora configuraremos GitLab y SonarQube en Jenkins.

  • Ir a Administrar Jenkins> Configurar Sistema
  • En servidores de SonarQube pestaña, ingrese la URL de su servidor SonarQube y el token de autenticación del servidor generado en SonarQube antes.

Vista previa de la incorporación de SonarQube en Jenkins:

Ahora, vaya a la pestaña de GitLab y agregue su URL de servidor de GitLab en URL de host de GitLab

En Credenciales , necesitamos el token API de GitLab para acceder a GitLab. Haga clic en Agregar y seleccione Jenkins: Proveedor de credenciales de Jenkins

En Amable , seleccione Token de API de GitLab de la lista desplegable. Ingrese su API Token generado en GitLab antes. Agregue el token con una identificación única.

Además, asegúrese de tener la ubicación de Jenkins correcta en Ubicación de Jenkins pestaña.

Después de agregar GitLab y SonarQube con éxito, también debemos agregar las configuraciones de SonarQube Scanner.

  • Ir a Administrar Jenkins> Configuración global de herramientas
  • En el escáner SonarQube pestaña, haga clic en Instalaciones de escáner SonarQube
  • Desmarque Instalar automáticamente y agregue su carpeta de inicio de instalación de SonarQube.

Paso 4:Agregar un proyecto a Jenkins para integración e inspección continuas

Después de realizar todas las configuraciones, crearemos un proyecto en Jenkins.

Vaya al Panel de Jenkins -> Nuevo elemento> Seleccione Proyecto de estilo libre . Crear proyecto con un nombre de proyecto único

En el panel de Jenkins, seleccione su proyecto y haga clic en Configurar .

Desplácese a General pestaña, seleccione la conexión de GitLab de la lista desplegable. Verá el nombre de conexión de GitLab que hemos agregado antes, en Administrar Jenkins> Configurar Sistema .

Desplácese hasta Gestión de código fuente pestaña, seleccione Git . Agregue la URL http de su proyecto GitLab (esto usa la misma sintaxis que el comando git clone). Puede obtener la URL en su página de proyecto de GitLab.

Especifique también la autenticación para la URL de GitLab.

  • En Credenciales , haga clic en Agregar y seleccione Jenkins: Proveedor de credenciales de Jenkins
  • en Amable , seleccione Nombre de usuario con contraseña de la lista desplegable.
  • Ingrese su nombre de usuario y contraseña de inicio de sesión de GitLab.
  • Agregue la clave con una identificación única.

También debe especificar las ramas para construir. Si se deja en blanco, se examinarán todas las ramas en busca de cambios y se construirán.

La adición de sucursales se puede hacer como:*/

Ahora, desplácese hasta Desencadenadores de compilación. , seleccione la casilla de verificación URL del webhook de GitLab.

  • Copie la URL del webhook de GitLab. Necesitamos configurar webhook en GitLab nuevamente, usando esta URL.
  • Haga clic en Avanzado
  • Generar como token secreto . Copie este token, esto se usa para configurar webhook en GitLab más adelante.

Vista previa de la creación de activadores de compilación

Por último, desplácese hasta Construir pestaña, en Ejecutar SonarQube Scanner , agregue los parámetros de configuración de SonarQube que utiliza el escáner SonarQube. Puede incluir SonarQube ProjectName, ProjectKey, la ubicación de instalación del escáner SonarQube, etc.

Después de realizar todas las configuraciones, debemos configurar el webhook en GitLab.

Webhook es un método para enviar los datos a otras aplicaciones en tiempo real.
Usamos webhook en GitLab para automatizar la entrega de códigos de GitLab durante eventos de inserción o eventos de combinación, según se especifica.

  • Inicie sesión en su cuenta de Gilab.
  • ir a Tus Proyectos en Proyecto menú.
  • Seleccione su proyecto
  • ir a Configuración> Integraciones
  • Agregue la URL del webhook y el token secreto que copiamos de la pestaña Jenkins Build Triggers.
  • Seleccione los disparadores que desee y anule la selección de Verificación SSL .
  • Crear webhook

Vista previa de la creación del webhook de GitLab:

Pruebe el webhook con eventos de inserción .

Una vez que la prueba es exitosa, Project comienza a construirse en Jenkins. Inicie sesión en Jenkins y verifique las compilaciones del proyecto. Puede ver los códigos de GitLab en Jenkins Workspaces .

Además, puedes ver los informes de código del proyecto en SonarQube.

¡Eso es todo! Hemos integrado con éxito GitLab, Jenkins y SonarQube. Ahora, para cada evento de inserción o combinación de eventos en nuestro repositorio de GitLab, Jenkins compilará el proyecto y mostrará la calidad del código en SonarQube.

Espero que este tutorial te haya resultado fácil de seguir. Por favor, hágamelo saber si tiene alguna pregunta o sugerencia.

Autor :Rishi Raj Gautam es un amante de Linux y un activista del código abierto.


Linux
  1. Cómo configurar Gitlab para la integración e implementación continuas en CentOS

  2. Bat:un clon de gato con resaltado de sintaxis e integración con Git

  3. Cómo integrar Jenkins con CloudFormation y Step Functions

  4. ¿Recortar con Lvm y Dm-crypt?

  5. Configuración de un subdominio con Apache en Linux

Configuración de un servidor OpenVPN con Sophos UTM y Viscosity

Configuración de un servidor OpenVPN con Sophos XG y Viscosity

Configuración de un servidor OpenVPN con Synology y Viscosity

Configuración de un servidor OpenVPN con enrutador Tomato y Viscosity

Configuración de un servidor OpenVPN con Ubuntu y Viscosity

Configuración de un servidor OpenVPN con VyOS y Viscosity