Implantar o servidor SonarQube

Oi, habrozhiteli!


Neste guia, desejo definir uma configuração passo a passo para implantar uma plataforma para análise e medição contínuas da qualidade do código. Existem muitos artigos semelhantes na rede, mas quero destacar apenas o principal, para que todos os recém-chegados possam lidar com isso pela primeira vez. SonarQube 7.9 com o PostgreSQL 10 .


Você já aprendeu o wiki, certo?


E antes de começarmos


Quero que você decida qual versão implementar, porque a cada atualização cada vez mais plug-ins são pagos, o que, é claro, afetará os custos ou a funcionalidade financeira.


Em geral - siga este link e veja por si mesmo: matriz da versão do plugin .


De acordo com a documentação: é recomendável manter o servidor e o banco de dados em máquinas diferentes . Mas na caixa de areia você também pode treinar em uma.


Se você possui Ubuntu e 2 servidores


Se você decidir seguir o caminho das recomendações e, para não se preocupar em criar duas máquinas virtuais, crie uma - você pode alterar o nome e o ip do segundo servidor com facilidade e simplesmente usando estes comandos:


::: alterar nome do host :::


 $ hostnamectl set-hostname sonarapp sudo nano /etc/hostname sudo nano /etc/hosts 

::: alterar ip ubuntu :::


 sudo nano /etc/netplan/01-eth0.yaml 

Lá, encontre as linhas familiares e altere os parâmetros do nome da máquina e do endereço IP.


E o que deveria acontecer :


Servidor de aplicativos Sonar [SonarApp]: 8 núcleos, 16 GB de RAM, 20 GB + 50 GB de espaço em disco


usuáriosenhaIPPlataforma
adminpass123192.168.0.15Ubuntu linux

Banco de dados do sonar [SonarDB]: 8 núcleos, 16 GB de RAM, 20 Gb + 50 Gb (/ opt) de espaço em disco


usuáriosenhaIPPlataforma
adminpass123192.168.0.16Debian Linux

1. Sugiro começar com um banco de dados


Faça o login em nosso bom administrador em 192.168.0.16 (SonarDB). É muito importante que você NÃO execute como root.


Verifique se o PostgreSQL está instalado no sistema. Existem muitas opções, mas tente a mais simples:


 $ which psql $ psql -V $ find / -name 'postgres' 

veja quais pacotes são baixados no sistema:


 $ dpkg -l | grep postgres 

Se nada foi encontrado, verifique se o PostgreSQL 10 está nos repositórios:


 $ sudo apt-cache search postgresql-10 

A documentação oficial de instalação do PostgreSQL: link . Mas se em ordem:


 $ wget -q https://www.postgresql.org/media/keys/ACCC4CF8.asc -O- | sudo apt-key add - $ sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/postgresql.list' $ sudo apt-get update $ sudo apt-get install postgresql-10 pgadmin4 

  • Eu tive problemas com o código do idioma depois de adicionar o postgres ao sistema. Método da solução (solução em /etc/default/locale ):
     $ sudo locale-gen en_US.UTF-8 $ sudo localedef -i en_US -f UTF-8 en_US.UTF-8 $ export LANGUAGE=en_US.UTF-8 $ export LANG=en_US.UTF-8 $ export LC_ALL=en_US.UTF-8 $ sudo locale-gen en_US.UTF-8 $ sudo dpkg-reconfigure locales 

O comando dpkg-reconfigure locales abrirá uma caixa de diálogo no Debian para selecionar o local desejado. Escolha en_US.UTF-8 .


Lançamento!


 $ sudo systemctl start postgresql $ sudo systemctl status postgresql $ sudo nano /etc/postgresql/10/main/postgresql.conf ### CTRL + W ### -> listen_addresses = '*' $ sudo systemctl restart postgresql 

Verifique se a instalação foi bem-sucedida:


 $ sudo apt-get install -y net-tools $ sudo netstat -antup | grep 5432 $ dpkg --get-selections |grep postgres $ pg_lsclusters 

Parabéns! Prossiga. :)


 sudo su -l postgres psql ### CTRL + Z ### -> exit from psql ### exit ### 

Altere a senha do usuário padrão do PostgreSQL


 $ sudo passwd postgres 

Mude para o usuário do postgres.


 $ su - postgres 

Mude para o shell do PostgreSQL.


 $ psql 

Configuração básica do PostgreSQL


Defina uma senha para o usuário recém-criado para o banco de dados SonarQube.


 CREATE ROLE sonar WITH PASSWORD 'sonar'; SELECT rolname FROM pg_roles; alter role sonar login; SELECT pg_reload_conf(); Create a new database for PostgreSQL database by running: create database sonar owner sonar; 

Saia do shell psql:


 '\q' 

Migração de banco de dados PostgreSQL


Parar o serviço PostgreSQL


 $ service postgresql stop # or $ /usr/lib/postgresql/10/bin/pg_ctl stop -D /var/lib/postgresql/10/main 

Mude o diretório de dados.


 $ psql 

 # show data_directory; /var/lib/postgresql/10/main 

 $ sudo rsync -av /var/lib/postgresql /opt/sonardb $ sudo mv /var/lib/postgresql/*/main /var/lib/postgresql/*/main.bak $ sudo nano /etc/postgresql/*/main/postgresql.conf # change location for new data_directory. data_directory = '/opt/sonardb/postgresql/10/main' listen_addresses = '*' 

Verificação de alteração


 $ sudo -u postgres psql 

 # show data_directory; ______________________ /opt/sonardb/postgresql/10/main # \q 

E também precisa verificar os parâmetros do sistema. Eles podem ser adicionados ao arquivo /etc/sysctl.conf (ou /etc/sysctl.d/99-sonarqube.conf ) ou inseridos no terminal:


 sysctl -w vm.max_map_count=262144 sysctl -w fs.file-max=65536 ulimit -n 65536 ulimit -u 4096 

2. E agora estaremos envolvidos no servidor de aplicativos SonarQube


Faça o login em nosso bom administrador em 192.168.0.15 (SonarApp). Também é importante que NÃO seja raiz.


Essas linhas que começam com o caractere $ são entradas terminais, e o restante é o que editaremos nos arquivos ou o que deve ser recebido na saída (saída de informações)


O SonarQube requer que o JAVA funcione. Tome o OpenJDK


Instale o open-jdk11


 $ sudo apt-get install openjdk-11-jdk 

alterar java PATH


 $ nano ~/.bash_profile export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64/bin/java export PATH=/usr/lib/jvm/java-11-openjdk-amd64/bin:$PATH 

Verifique se o JAVA foi adicionado com sucesso ao sistema :


 $ java -version 

Faça o download e configure o SonarQube


Faça o download do arquivo de instalação do SonarQube.


 $ wget https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-7.9.1.zip 

Instale o descompacte executando:


 # apt-get -y install unzip 

Descompacte o arquivo compactado usando o seguinte comando


 $ sudo unzip sonarqube-7.9.1.zip -d /opt 

Renomeie o diretório


 $ sudo mv /opt/sonarqube-7.9.1 /opt/sonarqube 

Adicionar usuário e privilégios do sonar


Saiba mais sobre gerenciamento de usuários no Unix .


Crie um usuário chamado sonar e torne-o o proprietário do /opt/sonarqubedirectory


 $ sudo adduser sonar $ sudo passwd sonar $ sudo chown -R sonar:sonar /opt/sonarqube 

obtenha usuários da lista no sistema:


 $ cut -d: -f1 /etc/passwd 

Em que grupos está o seu novo usuário:


 $ groups sonar 

Continuação configure o SonarQube


 $ sudo nano /opt/sonarqube/conf/sonar.properties 

 sonar.jdbc.username=sonar sonar.jdbc.password=sonar sonar.web.host=192.168.0.15 # sonar.jdbc.url=jdbc:postgresql://localhost/username sonar.jdbc.url=jdbc:postgresql://192.168.0.16/sonar sonar.web.javaAdditionalOpts=-server 

Crie um arquivo /etc/systemd/system/sonarqube.service e /etc/systemd/system/sonarqube.service o seguinte conteúdo no arquivo


 [Unit] Description=SonarQube service After=syslog.target network.target [Service] Type=simple User=sonar Group=sonar PermissionsStartOnly=true ExecStart=/bin/nohup java -Xms32m -Xmx32m -Djava.net.preferIPv4Stack=true -jar /opt/sonarqube/lib/sonar-application-7.9.1.jar StandardOutput=syslog LimitNOFILE=65536 LimitNPROC=8192 TimeoutStartSec=5 Restart=always [Install] WantedBy=multi-user.target 

Iniciar e ativar sonarqube


 $ sudo systemctl start sonarqube $ sudo systemctl enable sonarqube 

Para verificar se o serviço está sendo executado, execute:


 $ sudo systemctl status sonarqube 

Log:


 tail -f /opt/sonarqube/logs/sonar.log 



Para verificar a disponibilidade do banco de dados, conecte-se a 192.168.0.15 e digite:


 $ psql -h 192.168.0.16 -p 5432 -U sonar 

Isso é tudo. Para garantir que tudo funcione, acesse o navegador (verifique se a rede 192.168.XX está acessível a partir da sua ou use links).


Discaremos 192.168.0.15:9000 e você deverá ser bem-vindo na janela de autorização.


Dados do usuário administrador padrão do SonarQube Standard:


usuáriosenha
adminadmin

Source: https://habr.com/ru/post/pt474140/


All Articles