Instalando SonarQube no Azure

Nesse post vou demonstrar como instalar o SonarQube no Azure. Para quem não conhece o Sonar, vale muito a pena conhecer. Basicamente ele é uma ferramenta para evidenciar e gerenciar o débito técnico de aplicações. A muito tempo é conhecido pelos profissionais da comunidade open source, porém sua utilização vem se tornando muito grande por profissionais Microsoft, principalmente devido ao fato de agora ter uma integração nativa com o TFS/VSTS.

Como estou fazendo essa instalação para laboratório de testes, utilizei o Azure DevTest Labs para criar minha VM. Ele facilita muito por já ter os templates de VMs que normalmente preciso, além de algumas outras funcionalidades de que gosto muito, como auto-start e auto-shutdown. O Sonar suporta diversas versões de banco de dados, porém utilizei o SQL Server 2014 SP1 Express rodando em um Windows Server 2012 R2.

No Azure DevTest Labs clique em + Virtual machine e selecione o template “SQL Server 2014 SP1 Express on Windows Server 2012 R2”:

0

2

Após isso basta preencher as informações (Nome, Usuário, Senha, etc.), escolher o tamanho da máquina a ser utilizada, rede, subnet e clicar em Create:

3

Após alguns instantes a máquina será criada e disponibilizada para utilização. É possível se conectar na máquina virtual via RDP ou clicando em Connect no portal do Azure. Caso você esteja utilizando uma máquina virtual que não esteja no DevTest Labs, será necessário liberar os endpoints das portas de SQL (Default: 1433) e do Sonar (Default: 9000) para acesso externo.

Um dos pré-requisitos para o SonarQube é a instalação do Java. Faça a instalação seguindo os passos recomendados pelo produto e não esqueça de criar a variável de ambiente JAVA_HOME e atualizar o Path do Windows com o endereço de instalação.

6

Os próximos passos são as configurações do SQL Server. Para iniciar basta abrir o SQL Management Studio e clicar em connect. Após isso clique com o botão direito na instância de SQL e em propriedades.

4

Clique em Security –> SQL Server and Windows Authentication mode –> OK.

5

Além disso o Sonar precisa de um usuário com acesso ao SQL Server. Como é um cenário para laboratório, criei um novo usuário no SQL Server com permissão de sysadmin. Para isso clique em Server Roles –> sysadmin.

8

Agora é possível criar nosso banco de dados do Sonar. Clique em botão direito em Databases –> New database. De um nome para o banco de dados e clique em options para trocar a collation. Esse é um dos passos mais importantes, pois é o requisito principal de banco de dados para o Sonar. Selecione a collation SQL_Latin1_General_CP1_CS_AS e clique em OK.

9

A última configuração necessária para o SQL Server agora é habilitar o protocolo TCP. Abra o Sql Server Configuration Manager –> SQL Server Network Configuration –> Protocols for MSSQLSERVER  -> Botão direito em TCP/IP –> Enable. Reinicie o serviço de SQL Server para que as alterações de segurança tenham efeito.

9.1

Agora vamos para a instalação do Sonar. Faça o download do Sonar em https://www.sonarqube.org/downloads. Clique com o botão direito no arquivo –> Properties –> Unblock –> OK.

10

Extraia o arquivo para a pasta que gostaria que ficasse instalado. Em meu caso vou deixar em C:\sonarqube-5.6. Agora vamos configurar o Sonar para indicar o banco de dados que ele irá utilizar, assim como o usuário, senha e endereço de serviço. Entre na pasta onde o Sonar foi extraido –> conf –> abra o arquivo sonar.properties.

12

Com o arquivo aberto procure o bloco “# User credentials.”, remova o comentário (#) das linhas sonar.jdbc.username e sonar.jdbc.password e preencha as informações do usuário adicionado no SQL Server e a senha:

13

Altere também a conexão com o banco de dados. Remova o comentário (#) e atualize com as informações do banco de dados criado:

sonar.jdbc.url=jdbc:sqlserver://localhost;databaseName=SonarQube;SelectMethod=Cursor

14

Feche o arquivo e salve. Com esses passos, o Sonar já está configurado e pronto para funcionar. É possivel executa-lo por linha de comando, porém vou demonstrar como configura-lo como serviço.

Pelo CMD/Powershell vá até a pasta de instalação do Sonar –> bin –> windows-x86-64.

DICA: Se você estiver na pasta onde deseja executar o comando, clique na barra de endereços, remova todo o endereço e digite “CMD” ou “Powershell” e aperte “Enter”. Ele vai abrir já com o command line na pasta.

16

Execute o comando InstallNTService e aperte enter para instalar o Sonar como serviço. Ainda no CMD digite o comando “sc config SonarQube depend= MSSQLSERVER” (sem os aspas) para que o novo serviço do Sonar seja dependente do serviço de SQL Server (Somente se o Sonar estiver sendo instalado na mesma máquina do SQL Server). Assim caso o SQL Server não esteja sendo executado, o Sonar também não será.

17

Com isso o Sonar foi instalado como um Windows Service. Entre agora nos serviços do windows (Win+R = services.msc) e encontre o serviço do Sonar para alterar o usuário e senha de execução. Clique com o botão direito no serviço –> Log on –> This account –> Preencha o usuário e senha que o Sonar irá utilizar –> clique OK. Por fim, clique com o botão direito e inicie o serviço clicando em Start.

Se todas as configurações estiverem de acordo, abra o browser por dentro da VM e digite o endereço do Sonar: https://localhost:9000 e aperte enter.

19

Se quiser que o endereço fique disponível para acesso externo, abra novamente o prompt de comando e digite “netsh advfirewall firewall add rule name="SonarQube" dir=in action=allow protocol=TCP localport=9000” para liberar a porta 9000 no firewall e garantir o acesso. Isso pode ser feito também com a porta do SQL Server.

20

O Sonar está pronto para ser utilizado!

That’s it.