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
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
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
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
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"
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
Use o seguinte comando para verificar se a variável PATH foi alterada como esperado:
env | grep PATH
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
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
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
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:
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)
Depois de logar vamos ser direcionados para o 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.
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
Na proxima tela, vamos selecionar a linguagem do projeto e neste exemplo, selecionamos a opção: Outros (JS, TS, Go, Python, PHP, ...)
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
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
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
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
E agora você pode acessar no painel do SonarQube o resultado da analise:
Fontes onde pesquisei esse conteúdo:
Top comments (0)