Configuración de Jenkins Pipeline con SonarQube y la integración de GitLab
Jenkins Pipeline es un conjunto de funciones de Jenkin. Es una de las varias formas de definir algunos pasos de Jenkins o una combinación de trabajos utilizando código y automatizar el proceso de implementación de software.
Si aún no ha configurado Jenkins, diríjase a nuestra guía de instalación de Jenkins para obtener instrucciones. La canalización utiliza un lenguaje específico de dominio (DSL) con dos sintaxis diferentes:
- Canalización declarativa
- Canalización con guión
En este tutorial, vamos a configurar la canalización declarativa con integración de sonda y GitLab.
Configuración de Jenkins Pipeline con SonarQube y la integración de GitLab
1. Requisitos previos
Instalación del complemento Pipeline
Si hubiera seleccionado la opción instalar complementos sugeridos cuando configuró Jenkins, debería haber instalado automáticamente todos los complementos necesarios. Si no es así, no se preocupe, puede instalar los complementos ahora.
Inicie Jenkins y vaya a Administrar Jenkins -> Administrar complementos -> Disponible
Si no puede encontrar el complemento Pipeline en el Disponible sección, consulte la instalado pestaña.
Instalación de Sonar Scanner
Inicie sesión en el servidor de Jenkins primero. Aquí, voy a descargar el escáner de sonda a la carpeta “/ opt”.
cd /opt
Descarga usando wget.
wget https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-4.2.0.1873-linux.zip
si wget El comando no está disponible, puede instalarlo usando los siguientes comandos:
Para Ubuntu / Debian:
apt-get install wget -y
Para Centos / Redhat:
yum install wget -y
De vuelta a Sonar, es hora de descomprimir el archivo Sonar descargado.
unzip sonar-scanner-cli-4.2.0.1873-linux.zip
Instale descomprimir si obtiene el comando no encuentra un error.
Para Ubuntu / Debian:
apt-get install unzip -y
para Centos / Redhat:
yum install unzip -y
Cambiar el nombre del paquete de la sonda.
mv sonar-scanner-4.2.0.1873-linux sonar-scanner
Vaya al directorio de la sonda.
cd sonar-scanner
Consiga el camino.
pwd
Copiar la ruta del escáner de sonda:
/opt/sonar-scanner
Instalación del complemento Sonar
De la cabeza de Jenkin a Administrar Jenkins -> Administrar complementos -> Disponible
Buscar Sonar y seleccione Escáner SonarQube y haga clic en Instalar sin reiniciar.
Entonces Jenkins debería instalar el complemento correspondiente.
Seleccione Reinicie Jenkins cuando se complete la instalación. Jenkins debería reiniciarse.
Configuración de complementos de Sonar
Ir a Administrar Jenkins -> Configuración global de herramientas.
Encontrar Escáner SonarQube y haga clic en Agregar escáner SonarQube.
Deseleccionar instalar automáticamente.
Asigne cualquier nombre y pegue la ruta del escáner de sonda copiada a SONAR_RUNNER_HOME.
Luego guarde las configuraciones.
Configurar los ajustes del servidor Sonarqube
Obtenga el token de SonarQube del servidor de SonarQube.
Inicie sesión en el servidor SonarQube. Siga nuestra guía de instalación del servidor SonarQube para instalar Sonarqube Server.
Ir a Administración -> Seguridad -> usuarios.
Haga clic en Tokens.
Dar cualquier nombre y hacer clic en Generar token.
Copiar Token generado.
Ahora vaya a Jenkins Server.
Hacer clic Credenciales -> Sistema -> Credenciales globales -> Agregar credenciales.
Seleccione Texto secreto. Pegue el token de SonarQube copiado en Secret y dé cualquier nombre a la identificación y descripción.
Agregar el servidor SonarQube a Jenkins
Ir a Administrar Jenkins -> Configurar sistema.
Encontrar Servidores SonarQube y haga clic en Agregar SonarQube.
Seleccione Habilitar al inyectar el servidor SonarQube, dé cualquier nombre y agregue la URL del servidor sonarQube.
Seleccione token de autenticación en el menú desplegable. El token que agregamos anteriormente debería aparecer aquí.
Añadiendo el sonar-project.properties archivo a la raíz del repositorio
Aquí está nuestro archivo:
# Required metadata sonar.projectKey=fosslinux-nodejs sonar.projectName=fosslinux-nodejs # Comma-separated paths to directories with sources (required) sonar.sources=./ # Language sonar.language=js sonar.profile=node # Encoding of sources files sonar.sourceEncoding=UTF-8
Finalmente, haga clic en ahorrar.
Integrando el servidor GitLab con Jenkins
Siga nuestra guía de Gitlab para instalar y configurar GitLab.
Ir a Credenciales -> Sistema -> Credenciales globales -> Agregar credenciales.
Seleccione un nombre de usuario con contraseña. Agregue las credenciales de inicio de sesión de GitLab y haga clic en OK.
Inicie sesión en el servidor Jenkins e instale git.
Para Ubuntu / Debian:
apt-get install git -y
Para CentOS / Redhat:
yum install git -y
Aquí vamos a trabajar con la aplicación NodeJS, así que la instalaremos primero.
Instalación del complemento NodeJS
Ir a Administrar Jenkins -> administrador de complementos -> disponible.
Busque NodeJS.
Luego seleccione el complemento y instalar sin reiniciar.
Haga clic en Reinicie Jenkins cuando la instalación esté completa y no se estén ejecutando trabajos. y Jenkins debería reiniciarse automáticamente.
Configuración del complemento NodeJS
Haga clic en Administrar Jenkins> Configuración global de herramientas -> NodeJS
Dar cualquier nombre. Aquí hemos seleccionado instalar automáticamente y NodeJS 10.
Guarde las configuraciones.
Crear una canalización declarativa
Vaya al panel de Jenkins, haga clic en Nuevo Artículo. Luego ingrese un nombre de elemento y seleccione el proyecto 'Pipeline'. Hacer clic OK.
Seleccione Tubería Texto
Aquí está el script de canalización simple para git clone, control de calidad de SonarQube y NodeJS.
pipeline { agent any tools {nodejs "fosslinuxnode"} stages { stage("Code Checkout") { steps { git branch: 'development', credentialsId: 'fosslinuxgitlablogin', url: 'https://git.fosslinux.com/demo/fosslinux-demo.git' } } stage('Code Quality') { steps { script { def scannerHome = tool 'fosslinxsonar'; withSonarQubeEnv("fosslinxSonarqubeserver") { sh "${tool("fosslinxsonar")}/bin/sonar-scanner" } } } } stage("Install Dependencies") { steps { sh "npm install" } } stage("unit Test") { steps { sh "npm test" } } } }
Agregue el script de canalización anterior y guárdelo.
Conceptos de canalización
a) Pipeline: este es un bloque definido por el usuario que contiene todos los procesos, como compilación, implementación, etc.
b) Agente: la sección del agente especifica dónde se ejecutará todo el Pipeline, o una etapa específica, en el entorno de Jenkins, dependiendo de dónde se coloque la sección del agente.
c) Cualquiera: esta opción ejecuta la canalización / etapa en cualquier agente disponible.
d) Etapa: un bloque de etapa contiene una serie de pasos en una tubería. Es decir, la clonación, compilación, implementación, etc. procesan una etapa.
e) Pasos: se puede agregar una serie de pasos a un bloque de escenario. Simplemente, esta es una sola tarea que ejecuta un proceso específico. Ahora haga clic en construir.
La canalización debería comenzar a funcionar.
Aquí hay una tubería completa:
Se trata de instalar y configurar Jenkins Pipeline.
Deja una respuesta