DEV Community

Jhony Walker
Jhony Walker

Posted on

SonarQube - Instalação do scanner no Ubuntu Linux

Banner

Neste breve tutorial ensinarei como instalar o scanner do SonarQube no Ubuntu Linux e para isso utilizei as seguintes versões:

• Versão ubuntu: 19
• Versão Sonarqube: 7.9.1

Iniciando os trabalhos

Utilizei o apto para instalar os pacotes necessários e para isso rodei o seguinte comando:

 apt-get update apt-get install unzip wget nodejs 
Enter fullscreen mode Exit fullscreen mode

Agora vamos baixar o pacote de scanner do Sonarqube e mover para o diretório OPT.

 mkdir /downloads/sonarqube -p cd /downloads/sonarqube wget https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-4.2.0.1873-linux.zip unzip sonar-scanner-cli-4.2.0.1873-linux.zip mv sonar-scanner-4.2.0.1873-linux /opt/sonar-scanner 
Enter fullscreen mode Exit fullscreen mode

Hora de editar o arquivo sonar-scanner.properties para isso você deve preencher da seguinte forma:

 # Deve ser único em uma determinada instância SonarQube sonar.projectKey=my:project # Este é o nome e a versão exibidos na IU do SonarQube. Era obrigatório antes do SonarQube 6.1. sonar.projectName=My project sonar.projectVersion=1.0 # O caminho é relativo ao arquivo sonar-project.properties. Substitua "\" por "/" no Windows. # Esta propriedade é opcional se sonar.modules estiver definido. sonar.sources=. #Default SonarQube server sonar.host.url=http://localhost:9000 # Codificação do código-fonte. O padrão é a codificação do sistema utilizando sonar.sourceEncoding=UTF-8 
Enter fullscreen mode Exit fullscreen mode

Lembrando que no sonar.host.url é onde vamos passar o endereço para se conectar ao seu servidor do SonarQube.
Vamos criar um arquivo para automatizar a configuração de variáveis de ambiente necessárias

 vi /etc/profile.d/sonar-scanner.sh 
Enter fullscreen mode Exit fullscreen mode

Precisamos adicionar o comando sonar-scanner à variável PATH, então nosso arquivo sonar-scanner.sh ficará da seguinte forma:

 export PATH="$PATH:/opt/sonar-scanner/bin" 
Enter fullscreen mode Exit fullscreen mode

Reinicie o computador ou use o comando de origem para adicionar o comando do scanner sonar à variável PATH:

 reboot source /etc/profile.d/sonar-scanner.sh 
Enter fullscreen mode Exit fullscreen mode

Use o seguinte comando para verificar se a variável PATH foi alterada como esperado:

 env | grep PATH 
Enter fullscreen mode Exit fullscreen mode

Após executar o retorno do comando será o seguinte:

 PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/opt/sonar-scanner/bin 
Enter fullscreen mode Exit fullscreen mode

Em nosso exemplo, o diretório /opt/sonar-scanner/bin foi adicionado à variável PATH. Temos que verificar se a versão do scanner do Sonarqube foi instalada, basta executar o seguinte comando:

 sonar-scanner -v 
Enter fullscreen mode Exit fullscreen mode

Após a execução deste comando, o retorno será o seguinte:

 INFO: Scanner configuration file: /opt/sonar-scanner/conf/sonar-scanner.properties INFO: Project root configuration file: NONE INFO: SonarQube Scanner 4.2.0.1873 INFO: Java 11.0.3 AdoptOpenJDK (64-bit) INFO: Linux 5.3.0-18-generic amd64 
Enter fullscreen mode Exit fullscreen mode

Com isso, encerramos a intalação do Scanner do Sonarqube.

Escaneando um código estático

Bom, agora é a hora da verdade vamos escanear um código para verificarmos se está funcionando corretamente. Precisaremos acessar a interface web SonarQube e criar um novo projeto, abrindo o navegador vamos inserir o endereço IP do nosso servidor web mais :9000, no nosso caso foi a seguinte URL inserida no Navegador foi http://192.168.15.10:9000 e ao acessar este link será apresentado a seguinte tela:

Tela Inicial

Clique no botão Login e use o nome de usuário e senha padrão do SonarQube ( Nome de usuário padrão: admin e senha padrão: admin)

Logando

Depois de logar vamos ser direcionados para o Painel do SonarQube.

Painel do SonarQube

Em nosso exemplo vamos analisar um projeto popular de código aberto chamado Zabbix que realiza o Monitoramento em tempo real de componentes e serviços de TI, como redes, servidores, VMs, aplicativos e nuvem. Precisaremos defina uma chave de projeto e um nome de exibição.

Create Project

o proximo passo é digitar uma sequência para o nome do token do projeto e clicar no botão Gerar, Em nosso exemplo, entramos no nome do token Zabbix. O token é usado para identificá-lo quando uma análise é realizada e caso ele foi comprometido, você pode revogá-lo em qualquer momento na sua conta de usuário. Em nosso exemplo, o token gerado foi zabbix: 47c300fa4d7b9e8a3e7c953e7c250477f3617e5

Token

Na proxima tela, vamos selecionar a linguagem do projeto e neste exemplo, selecionamos a opção: Outros (JS, TS, Go, Python, PHP, ...)

Linguagem

Temos que seleciona o sistema operacional Linux, após essa etapa o sistema mostrará a linha de comando que devemos usar para escanear o projeto Zabbix.

 sonar-scanner \ -Dsonar.projectKey=zabbix \ -Dsonar.sources=. \ -Dsonar.host.url=http://192.168.15.15:9000 \ -Dsonar.login=47c300fa4d7b9e8a3e7c953e77c250477f3617e5 
Enter fullscreen mode Exit fullscreen mode

Será necessário uma cópia local do código estático que vamos analisar, para isso podemos baixar a pasta do repositório ou rodar o famoso git clone (fica á sua escolha). Agora acessamos o diretório do projeto e executamos o scanner do SonarQube:

 mkdir /downloads cd /downloads wget https://ufpr.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/4.4.0/zabbix-4.4.0.tar.gz tar -zxvf zabbix-4.4.0.tar.gz 
Enter fullscreen mode Exit fullscreen mode

Como no nosso exemplo, o servidor SonarQube e o scanner estão instalados no mesmo computador, vamos executar o seguinte comando:

 cd zabbix-4.4.0 sonar-scanner -X -Dsonar.projectKey=zabbix -Dsonar.sources=. -Dsonar.host.url=http://192.168.15.15:9000 -Dsonar.login=47c300fa4d7b9e8a3e7c953e77c250477f3617e5 
Enter fullscreen mode Exit fullscreen mode

Por último guarde Scanner ser escaneado para finalizar e enviar automaticamente os resultados para o servidor Sonarqube.

 INFO: Scanner configuration file: /opt/sonar-scanner/conf/sonar-scanner.properties INFO: Project root configuration file: NONE INFO: SonarQube Scanner 4.2.0.1873 INFO: Java 11.0.3 AdoptOpenJDK (64-bit) INFO: Linux 5.0.0-32-generic amd64 INFO: User cache: /root/.sonar/cache INFO: SonarQube server 7.9.1 INFO: Default locale: "en_US", source code encoding: "UTF-8" INFO: Load global settings INFO: Load global settings (done) | time=151ms INFO: Server id: 86E1FA4D-AW4kOChb3AqmkzI_OKyt INFO: User cache: /root/.sonar/cache INFO: Load/download plugins INFO: Load plugins index INFO: Load plugins index (done) | time=101ms INFO: Load/download plugins (done) | time=223ms INFO: Process project properties INFO: Execute project builders INFO: Execute project builders (done) | time=11ms INFO: Project key: zabbix INFO: Base dir: /downloads/videospeed INFO: Working dir: /downloads/videospeed/.scannerwork INFO: Load project settings for component key: 'zabbix' INFO: Load project settings for component key: 'zabbix' (done) | time=33ms INFO: Load quality profiles INFO: Load quality profiles (done) | time=124ms INFO: Load active rules 
Enter fullscreen mode Exit fullscreen mode

E agora você pode acessar no painel do SonarQube o resultado da analise:

Resultado do scan

Fontes onde pesquisei esse conteúdo:

Top comments (0)