Saltar al contenido
marzo 4, 2020

 

El autor ha seleccionado Archivo de Internet para recibir una donación como parte del programa de escritura de donaciones. calidad

Introducción

Código es una aproximación de lo útil y fácil de mantener una parte específica de código es. código de calidad hará que la tarea de mantener y ampliar su aplicación más fácil. Esto ayuda a asegurar que menos errores se introducen cuando se realizan cambios necesarios en el futuro.

sonarqube es una herramienta de código abierto que ayuda en el análisis de la calidad del código y la presentación de informes. De analizar el código fuente en busca de posibles errores, vulnerabilidades y problemas de mantenimiento y, a continuación, se presentan los resultados de un informe que le permitirá identificar posibles problemas en su aplicación. La herramienta

sonarqube en sí está hecho de dos partes: un escáner, que es una aplicación que se instala localmente en la máquina del desarrollador para hacer el análisis de código, y un servidor centralizado para el mantenimiento de registros y presentación de informes. Una instancia de servidor único sonarqube puede soportar múltiples escáneres, lo que le permite centralizar los informes de calidad de código de muchos desarrolladores en un solo lugar.

En esta guía, se desplegará un servidor sonarqube y un escáner para analizar el código y crear informes de calidad de código. A continuación, se va a realizar una prueba en la máquina mediante el escaneo de un código de ejemplo con el escáner sonarqube.

Requisitos previos

Antes de empezar esta guía que necesitará el siguiente: 18.04 servidor

  • Una Ubuntu con 3 GB o más de memoria preparada siguiendo esta primera configuración del servidor con Ubuntu 18.04, incluyendo un usuario y un sudo no root cortafuegos.
  • Oracle Java 8 instalado en el servidor, configurado siguiendo la sección de Oracle JDK en este tutorial de instalación de Oracle JDK.
  • Nginx y MySQL, configurados siguiendo las secciones Nginx y MySQL en esta guía de instalación LEMP.
  • Certbot (cliente Cifrar del LET), configurado siguiendo la forma de asegurar Nginx con Cifrar Vamos en Ubuntu 18.04.
  • Un nombre de dominio totalmente cualificado con un registro A que apunta al servidor donde se va a instalar sonarqube. Si está utilizando el servicio DNS del digitalocean, este registro DNS guía de configuración le ayudará a poner esto en marcha. Vamos a utilizar sonarqube.example.com en este tutorial.

Paso 1 – Preparación para la Instalación

que necesita para completar algunos pasos para preparar la instalación sonarqube. Como sonarqube es una aplicación Java que se ejecuta como un servicio, y porque usted no desea ejecutar servicios como la raíz usuario , podrás crear otro usuario del sistema específicamente para ejecutar los servicios sonarqube. Después de eso, vamos a crear el directorio de instalación y configurar sus permisos, y luego vamos a crear una base de datos MySQL y un usuario para sonarqube.

En primer lugar, crear el usuario sonarqube :

sudo adduser --system --no-create-home --group --disabled-login sonarqube

  • sudo adduser –system –no-create-hogar –group –disabled-login sonarqube

Este usuario sólo será utilizada para ejecutar el servicio sonarqube , por lo que este crea un usuario del sistema que no se puede iniciar sesión en el servidor directamente.

A continuación, cree el directorio para instalar en sonarqube:

sudo mkdir /opt/sonarqube

  • sudo mkdir / opt / sonarqube comunicados

sonarqube están empaquetados en un formato comprimido, por lo que instalar la herramienta de descompresión que permitirá extraer esos archivos.

sudo apt-get install unzip

  • sudo apt-get install unzip

A continuación, se creará una base de datos y credenciales que sonarqube utilizará. Conectarse al servidor MySQL como la raíz usuario:

sudo mysql -u root -p

  • sudo mysql -u root -p

A continuación, crear la base de datos sonarqube:

CREATE DATABASE sonarqube;

  • CREAR sonarqube base de datos;

ya crear las credenciales que sonarqube utilizará para acceder a la base de datos.

CREATE USER [email protected]'localhost' IDENTIFIED BY 'some_secure_password';

  • CREAR sonarqube usuario @ ‘localhost’ IDENTIFICADAS POR ‘some_secure_password’;

A continuación, conceder permisos para que el usuario recién creado puede realizar cambios en la base de datos sonarqube:

GRANT ALL ON sonarqube.* to [email protected]'localhost';

  • GRANT ALL ON * sonarqube a sonarqube @ ‘localhost’;.

A continuación, aplicar los cambios de permisos y salir de la consola de MySQL:

FLUSH PRIVILEGES;
EXIT;

  • PRIVILEGIOS FLUSH; SALIR
  • ;

Ahora que tiene el usuario y el directorio en su lugar, se descarga e instala el servidor sonarqube.

Paso 2 – Descarga e instalación sonarqube

empezar por cambiar el directorio de trabajo actual al directorio de instalación sonarqube:

cd /opt/sonarqube

  • cd / opt / sonarqube

A continuación, diríjase a la página del sonarqube descargas y agarrar el enlace de descarga para sonarqube 7.5 Community Edition. Hay muchas versiones y sabores de sonarqube disponible para su descarga en la página, pero en este tutorial específico que va a utilizar sonarqube 7.5 Community Edition.

Después de conseguir el enlace, descargue el archivo:

sudo wget https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-7.5.zip

  • sudo wget https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-7.5.zip

Descomprimir el archivo:

sudo unzip sonarqube-7.5.zip

  • sudo unzip sonarqube -7.5.zip

Una vez que extraen los archivos, borrar el archivo zip descargado, ya que ya no lo necesita:

sudo rm sonarqube-7.5.zip

  • sudo rm sonarqube-7.5.zip

Por último, actualizar los permisos para que el sonarqube el usuario poseerá estos archivos, y ser capaz de leer y escribir archivos en este directorio:

sudo chown -R sonarqube:sonarqube /opt/sonarqube

  • sudo chown -R sonarqube: sonarqube / opt / sonarqube

Ahora que todos los archivos están en su lugar, podemos pasar a configurar el servidor sonarqube.

Paso 3 – Configuración del servidor

sonarqube tendremos que editar algunas cosas en el archivo de configuración sonarqube. A saber:

  • tenemos que especificar el nombre de usuario y contraseña que el servidor sonarqube utilizará para la conexión de base de datos.
  • También tenemos que decir sonarqube utilizar MySQL para la base de datos back-end.
  • Nos dirá sonarqube para funcionar en modo de servidor, lo que dará lugar a un mejor rendimiento.
  • También dirá sonarqube para escuchar sólo en la dirección de red local, ya que vamos a utilizar un proxy inverso.

de inicio al abrir el fichero de configuración sonarqube:

sudo nano sonarqube-7.5/conf/sonar.properties

  • sudo nano-sonarqube 7.5 / conf / sonar.properties

En primer lugar, cambiar el nombre de usuario y una contraseña que sonarqube utilizará para acceder a la base de datos para el nombre de usuario y su contraseña creado para MySQL:


...

sonar.jdbc.username=sonarqube
sonar.jdbc.password=some_secure_password

...

a continuación, diga sonarqube usar MySQL como motor de base de datos:


...

sonar.jdbc.url=jdbc:mysql://localhost:3306/sonarqube?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false

...

como esta instancia de sonarqube se ejecuta como un servidor dedicado, podríamos añadir la opción -server para activar el modo de servidor de sonarqube, que se ayuda a maximizar el rendimiento.

Nginx se encargará de la comunicación entre los clientes y sonarqube su servidor, por lo que se dirá sonarqube para escuchar solamente a la dirección local.


...

sonar.web.javaAdditionalOpts=-server
sonar.web.host=127.0.0.1

Una vez que haya actualizado los valores, guardar y cerrar el archivo.

A continuación, se utilizará Systemd a configurar sonarqube para ejecutarse como un servicio para que éste se iniciará automáticamente al reiniciar el sistema.

Crear el archivo de servicio:

sudo nano /etc/systemd/system/sonarqube.service

  • sudo nano /etc/systemd/system/sonarqube.service

Añadir el siguiente contenido al archivo que especifica cómo el servicio sonarqube pondrá en marcha y parada:


[Unit]
Description=SonarQube service
After=syslog.target network.target

[Service]
Type=forking

ExecStart=/opt/sonarqube/sonarqube-7.5/bin/linux-x86-64/sonar.sh start
ExecStop=/opt/sonarqube/sonarqube-7.5/bin/linux-x86-64/sonar.sh stop

User=sonarqube
Group=sonarqube
Restart=always

[Install]
WantedBy=multi-user.target

se puede aprender más información sobre los archivos de la unidad systemd en la comprensión de Unidades systemd y archivos de unidades.

cerrar y guardar el archivo, a continuación, iniciar el servicio sonarqube: servicio

sudo service sonarqube start

  • sudo sonarqube comenzar

Compruebe el estado del servicio sonarqube para asegurarse de que se ha iniciado y está funcionando como se esperaba: sonarqube servicio

service sonarqube status

  • estado

Si el servicio se ha iniciado con éxito, verá una línea que dice “activo” similar a esto:

● sonarqube.service - SonarQube service
Loaded: loaded (/etc/systemd/system/sonarqube.service; enabled; vendor preset
Active: active (running) since Sat 2019-01-05 19:00:00 UTC; 2s ago

a continuación, configurar el servicio sonarqube que se inicie automáticamente en el arranque:

sudo systemctl enable sonarqube

  • sudo systemctl permiten sonarqube

en este punto, el servidor sonarqube tomará unos minutos para inicializar completamente. Puede comprobar si el servidor se ha iniciado mediante la consulta del puerto HTTP:

curl http://127.0.0.1:9000

  • rizo http://127.0.0.1:9000

Una vez que el proceso de inicialización se ha completado, se puede pasar al siguiente paso.

Paso 4 – Configuración del proxy inverso

Ahora que tenemos el servidor en funcionamiento sonarqube, es el momento de configurar Nginx, que será el proxy inverso y HTTPS terminador para nuestro ejemplo sonarqube.

de inicio mediante la creación de un nuevo archivo de configuración de Nginx para el sitio:

sudo nano /etc
ginx/sites-enabled/sonarqube

  • sudo nano / etc / nginx / sites-enabled / sonarqube

Añadir esta configuración para que Nginx encaminará el tráfico de entrada a sonarqube:


server {
listen 80;
server_name sonarqube.example.com;

location / {
proxy_pass http://127.0.0.1:9000;
}
}

Guardar y cierre el archivo.

A continuación, asegúrese de que su archivo de configuración no tiene errores de sintaxis:

sudo nginx -t

  • sudo nginx -t

Si ve errores, corregirlos y ejecutar sudo nginx -t nuevo. Una vez que no haya errores, reinicie Nginx: servicio

sudo service nginx restart

  • sudo reiniciar nginx

Para una prueba rápida, ahora se puede visitar http://sonarqube.example.com en su navegador web. Será recibido con la interfaz web sonarqube.

Ahora vamos a utilizar Cifrar Vamos a crear certificados HTTPS para nuestra instalación, por lo que los datos se transfieren de forma segura entre el servidor y el equipo local. Uso certbot para crear el certificado para Nginx:

sudo certbot --nginx -d sonarqube.example.com

  • sudo certbot –nginx -d sonarqube.example.com

Si esta es la primera vez que solicita el certificado de cifrado de un Let, Certbot le pedirá su dirección de correo electrónico y el acuerdo EULA . Introduzca su correo electrónico y aceptar el EULA.

Certbot entonces preguntar cómo desea configurar los parámetros de seguridad. Seleccione la opción para redirigir todas las peticiones HTTPS. Esto asegurará que todas las comunicaciones entre clientes y el servidor sonarqube se encripta.

Ahora que hemos terminado la configuración del proxy inverso, podemos pasar a asegurar nuestro servidor sonarqube.

Paso 5 – Fijación barcos sonarqube

sonarqube con un defecto administrador adminis- nombre de usuario y la contraseña de administrador . Esta contraseña por defecto no es segura, por lo que desea actualizar a algo más seguro como una práctica de seguridad bueno.

comenzar visitando la URL de su instalación, e inicie sesión con las credenciales predeterminadas. Si se le solicita iniciar un tutorial, simplemente haga clic en Omitir este tutorial llegar al tablero de instrumentos.

Una vez iniciada la sesión, haga clic en la pestaña Administración , seleccionar Seguridad de la lista-menú desplegable, y luego seleccione Usuarios :

Desde aquí, haga clic en el pequeño engranaje en la derecha de la “ administrador de”fila de la cuenta, a continuación, haga clic en‘Cambiar contraseña’. Asegúrese de cambiar la contraseña a algo que es fácil de recordar pero difícil de adivinar.

Ahora crea un usuario normal que se puede utilizar para crear proyectos y presentar los resultados del análisis a su servidor desde la misma página. Haga clic en el botón Crear usuario en la parte superior derecha de la página:

A continuación, crear una ficha para un usuario específico haciendo clic en el botón de la columna “tokens” y dar esta señal un nombre. Lo necesitará más adelante testigo cuando se invoca el escáner de código, así que asegúrese de anotarla en un lugar seguro.

Por último, es posible que observe que la instancia sonarqube es muy abierta al mundo, y cualquiera podía ver los resultados del análisis y su código fuente. Esta configuración es muy inseguro, por lo que configuraremos sonarqube para permitir sólo los usuarios registrados acceso al panel de control. De la misma pestaña Administración , haga clic en Configuración , entonces Ajustes , y luego Seguridad en el panel izquierdo. Activa el interruptor que dice la autenticación de usuarios Fuerza para habilitar la autenticación, a continuación, haga clic en el botón Guardar debajo del interruptor.

Ahora que terminó de configurar el servidor, vamos a configurar el escáner sonarqube.

Paso 6 – Configurar el escáner de código de escáner de código de

sonarqube es un paquete independiente que se puede instalar en una máquina diferente a la que se ejecuta el servidor sonarqube, como su estación de trabajo de desarrollo local o un servidor de entrega continua. Hay paquetes disponibles para Windows, MacOS y Linux que se pueden encontrar en el sitio web sonarqube

En este tutorial, se va a instalar el escáner de código en el mismo servidor que aloja nuestro servidor sonarqube.

de inicio mediante la creación de un directorio para el escáner:

sudo mkdir /opt/sonarscanner

  • sudo mkdir / opt / sonarscanner

Luego cambie a ese directorio:

cd /opt/sonarscanner

  • cd / opt / sonarscanner

Descargar el escáner sonarqube para Linux usando wget :

sudo wget https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-3.2.0.1227-linux.zip

  • sudo wget https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-3.2.0.1227-linux.zip

A continuación, extraer el escáner:

sudo unzip sonar-scanner-cli-3.2.0.1227-linux.zip

  • sudo unzip sonar-scanner-cli-3.2.0.1227-linux.zip

continuación, elimine el archivo ZIP:

sudo rm sonar-scanner-cli-3.2.0.1227-linux.zip

  • sudo rm sonar-scanner-cli-3.2.0.1227-linux.zip

Después de eso , tendrá que modificar algunos ajustes para conseguir el funcionamiento del escáner con la instalación de servidor. Abra el archivo de configuración para la edición:

sudo nano sonar-scanner-3.2.0.1227-linux/conf/sonar-scanner.properties

  • sudo nano-escáner de sonar-3.2.0.1227-Linux / conf / sonar-scanner.properties

En primer lugar, decir que el escáner donde debe presentar los resultados de análisis de código. Un-comentario de la línea que comienza con sonar.host.url y ponerlo a la URL de su servidor sonarqube:

sonar.host.url=https://sonarqube.example.com

Guardar y cerrar el archivo. Ahora que el escáner binario ejecutable:

sudo chmod +x sonar-scanner-3.2.0.1227-linux/bin/sonar-scanner

  • sudo chmod + x sonar de escáner-3.2.0.1227-linux / bin / sonar de escáner

A continuación, cree un enlace simbólico por lo que se puede llamar el escáner sin especificar la ruta:

sudo ln -s /opt/sonarscanner/sonar-scanner-3.2.0.1227-linux/bin/sonar-scanner /usr/local/bin/sonar-scanner

  • sudo ln -s /opt/sonarscanner/sonar-scanner-3.2.0.1227-linux/bin/sonar-scanner / usr / local / bin / sonar de escáner

Ahora que el escáner está correctamente configurado, vamos está listo para ejecutar nuestra primera exploración de código.

Paso 7 – Ejecutar un escaneo de prueba en sonarqube Ejemplos de Proyectos

Si desea simplemente hurgar con sonarqube para ver lo que puede hacer, usted podría considerar la posibilidad de realizar un examen de prueba en los proyectos de ejemplo sonarqube. Estos son ejemplos de proyectos creados por el equipo sonarqube que contiene muchos temas que sonarqube entonces detectar y reportar.

Crear un nuevo directorio de trabajo en su directorio personal, a continuación, cambie al directorio:

cd ~
mkdir sonar-test && cd sonar-test

  • cd ~
  • mkdir sonar de prueba && sonar de prueba de cd

Descargar el proyecto de ejemplo:

wget https://github.com/SonarSource/sonar-scanning-examples/archive/master.zip

  • wget https: //github.com/SonarSource/sonar-scanning-examples/archive/master.zip

Descomprimir el proyecto y elimine el archivo de almacenamiento:

unzip master.zip
rm master.zip

  • descomprimir master.zip
  • rm master.zip

A continuación, cambiar al directorio de ejemplo de proyecto:

cd sonar-scanning-examples-master/sonarqube-scanner

  • cd sónar de barrido-ejemplos-master / sonarqube-escáner

Ejecución del examinador, pasándole el testigo que ha creado anteriormente:

sonar-scanner -D sonar.login=your_token_here

  • sonar de escáner -D sonar.login = your_token_here

Esto llevará un tiempo. Una vez finalizada la exploración, verá algo como esto en la consola:

INFO: Task total time: 14.128 s
INFO: ------------------------------------------------------------------------
INFO: EXECUTION SUCCESS
INFO: ------------------------------------------------------------------------
INFO: Total time: 21.776s
INFO: Final Memory: 17M/130M
INFO: ------------------------------------------------------------------------

El informe del proyecto de ejemplo ahora estará en el salpicadero sonarqube así:

Ahora que ha confirmado que el servidor y sonarqube escáner funciona con el código de prueba, puede utilizar sonarqube para analizar su propio código.

Paso 8 – Ejecución de una exploración de su propio código

Para tener sonarqube analizar su propio código, se inicia mediante la transferencia de su proyecto en el servidor, o siga el paso 6 para instalar y configurar el escáner sonarqube en su estación de trabajo y configurarlo para que el punto a su servidor sonarqube.

Luego, en el directorio raíz de su proyecto, crear un archivo de configuración sonarqube:

nano sonar-project.properties

  • nano sonar-project.properties

Vamos a usar este archivo para contar sonarqube algunas cosas acerca de su proyecto.

En primer lugar, definir una clave del proyecto , que es un identificador único para el proyecto. Usted puede usar cualquier cosa que le gustaría, pero esto ID debe ser único para la instancia sonarqube:


# Unique ID for this project
sonar.projectKey=foobar:hello-world

...

A continuación, especifique el nombre del proyecto y la versión para que sonarqube mostrará esta información en el salpicadero:


...

sonar.projectName=Hello World Project
sonar.projectVersion=1.0

...

Por último, decirle donde sonarqube para buscar los archivos de código. Tenga en cuenta que esto es relativo al directorio en el que reside el archivo de configuración. Configurarlo para que el directorio actual:


# Path is relative to the sonar-project.properties file. Replace "\" by ""/"" on Windows.