# Análisis de Código en CI/CD con SonarQube. Parte 2.

Ya tenemos nuestro servidor de SonarQube funcionando, en base al [primer tutorial](https://safernandez666.hashnode.dev/analisis-de-codigo-en-cicd-con-sonarqube-parte-1). Ahora nos queda hacerlo formar parte de nuestro Pipeline. Lo primero que debemos hacer es instalar, en **Jenkins**, sonar-scanner. Para ello vamos a conectarnos, via SSH, e instalarlo.

[Aca](https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/) les dejo para realizar la descarga y la [documentación oficial](https://docs.sonarqube.org/latest/analysis/scan/sonarscanner/).

¡Realizamos los siguientes comandos!

```apache
wget https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-4.2.0.1873.zip
unzip sonar-scanner-cli-4.2.0.1873.zip
mv sonar-scanner-cli-4.2.0.1873-linux /opt/sonar-scanner 
```

Configuramos sonar-scanner. Para ello en /opt/sonar-scanner/conf/sonar-scanner.properties, agregamos la dirección de nuestro **SonarQube**.

```apache
#Configure here general information about the environment, such as SonarQube se>
#No information about specific project should appear here

#----- Default SonarQube server
sonar.host.url=http://DIRECCIONDELSERVIDORSONARQUBE:30000

#----- Default source code encoding
#sonar.sourceEncoding=UTF-8
```

*Manage Jenkins &gt; Manage Plugins &gt; Avalable &gt; SonarQube scanner*

Configuramos el PlugIn, indicando la ruta de sonar-scanner.

*Manage Jenkins &gt; Global Tool Configuration &gt; SonarQube Scanner*

![](https://blog.santiagoagustinfernandez.com/wp-content/uploads/2019/12/Captura-de-Pantalla-2019-12-25-a-las-20.41.21.png align="center")

Tenemos que configurar el Token de Autenticación. Para ello, primero, debemos ingresar a **SonarQube**, por defecto el usuario y contraseña es admin/admin. Una vez autenticados:

![](https://blog.santiagoagustinfernandez.com/wp-content/uploads/2019/12/Captura-de-Pantalla-2019-12-25-a-las-20.45.03.png align="center")

Generación de Token ¡Lo copiamos!

![](https://i0.wp.com/blog.santiagoagustinfernandez.com/wp-content/uploads/2019/12/Captura-de-Pantalla-2019-12-25-a-las-20.24.48.png?fit=640%2C564&ssl=1 align="center")

Ya con el Token, volvemos a configurar **Jenkins**.

*Manage Jenkins &gt; Configure Systems &gt; SonarQube Servers*

![](https://blog.santiagoagustinfernandez.com/wp-content/uploads/2019/12/Captura-de-Pantalla-2019-12-25-a-las-20.52.36.png align="center")

Dependiendo de la version de Jenkins, que esten utilizando, tengan que agregar el Token como Secret Text.

Llego el momento de crear la Tarea. En mi caso vamos a revisar el código de un proyecto, sencillo, en **Python**. Importante revisar en el MarketPlace, de **SonarQube**, si tenemos el PlugIn del lenguaje a auditar.

Configuramos el Source, del proyecto:

![](https://blog.santiagoagustinfernandez.com/wp-content/uploads/2019/12/Captura-de-Pantalla-2019-12-25-a-las-20.22.51.png align="center")

Agregamos las variables de **SonarQube**, para la conexión y la creación del proyecto.

![](https://blog.santiagoagustinfernandez.com/wp-content/uploads/2019/12/Captura-de-Pantalla-2019-12-25-a-las-20.23.14.png align="center")

¡Ejecutamos! Al finalizar, si obtuvimos Success, podríamos chequear los Issues del código. Con esa información disparar resoluciones, bloquear el deploy, etc. Todo se basara en las configuraciones de nuestro **Quality Gates**.

![](https://blog.santiagoagustinfernandez.com/wp-content/uploads/2019/12/Captura-de-Pantalla-2019-12-25-a-las-21.05.06.png align="center")

![](https://blog.santiagoagustinfernandez.com/wp-content/uploads/2019/12/Captura-de-Pantalla-2019-12-25-a-las-21.11.56.png align="center")

![](https://blog.santiagoagustinfernandez.com/wp-content/uploads/2019/12/Captura-de-Pantalla-2019-12-25-a-las-21.12.43.png align="center")

Podemos ver las recomendaciones que nos otorga **SonarQube**.

Seguramente tengamos mucho para mejorar u optimizar. ¡Espero que les sirva!
