Requisits previs
Pas 1: realitzeu una actualització del sistema
Pas 2: instal·leu Java
Pas 3: instal·leu i configureu PostgreSQL
Pas 4: Baixeu i configureu SonarQube
Pas 5: configureu el servei Systemd
Pas 5: configureu el servidor intermediari invers
Pas 6: configureu el tallafoc
Errada
SonarQube és una eina de codi obert per al desenvolupament de sistemes de qualitat. Està escrit en Java i admet múltiples bases de dades. Proporciona capacitats per inspeccionar contínuament el codi, mostrar l'estat d'una aplicació i ressaltar problemes recentment introduïts. Conté analitzadors de codi equipats per detectar problemes complicats. També s'integra fàcilment amb DevOps.
En aquest tutorial, instal·larem la darrera versió de SonarQube a CentOS 7.
Nota: aquest document s'ha actualitzat des de la seva publicació original. Vegeu la secció "Errates" a les notes a peu de pàgina.
Requisits previs
- Una instància de servidor Vultr CentOS 7 de 64 bits amb almenys 2 GB de RAM.
- Un usuari de sudo .
Abans d'instal·lar qualsevol paquet a la instància del servidor CentOS, es recomana actualitzar el sistema. Inicieu sessió amb l'usuari sudo i executeu les ordres següents per actualitzar el sistema.
sudo yum -y install epel-release
sudo yum -y update
sudo shutdown -r now
Un cop el sistema s'hagi acabat de reiniciar, torneu a iniciar sessió com a usuari sudo i aneu al pas següent.
Pas 2: instal·leu Java
Baixeu el paquet Oracle SE JDK RPM escrivint:
wget --no-cookies --no-check-certificate --header "Cookie:oraclelicense=accept-securebackup-cookie" "http://download.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa80163/jdk-8u131-linux-x64.rpm"
Instal·leu el paquet descarregat escrivint:
sudo yum -y localinstall jdk-8u131-linux-x64.rpm
Ara podeu comprovar la versió de Java escrivint:
java -version
Pas 3: instal·leu i configureu PostgreSQL
Instal·leu el repositori PostgreSQL escrivint:
sudo rpm -Uvh https://download.postgresql.org/pub/repos/yum/9.6/redhat/rhel-7-x86_64/pgdg-centos96-9.6-3.noarch.rpm
Instal·leu el servidor de bases de dades PostgreSQL executant:
sudo yum -y install postgresql96-server postgresql96-contrib
Inicialitzar la base de dades:
sudo /usr/pgsql-9.6/bin/postgresql96-setup initdb
Editeu /var/lib/pgsql/9.6/data/pg_hba.confper habilitar l'autenticació basada en MD5.
sudo nano /var/lib/pgsql/9.6/data/pg_hba.conf
Busca les línies següents i canvia peera trusti idneta md5.
# TYPE DATABASE USER ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all peer
# IPv4 local connections:
host all all 127.0.0.1/32 ident
# IPv6 local connections:
host all all ::1/128 ident
Un cop actualitzada, la configuració hauria de semblar a la que es mostra a continuació.
# TYPE DATABASE USER ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all trust
# IPv4 local connections:
host all all 127.0.0.1/32 md5
# IPv6 local connections:
host all all ::1/128 md5
Inicieu el servidor PostgreSQL i activeu-lo perquè s'iniciï automàticament en el moment de l'arrencada executant:
sudo systemctl start postgresql-9.6
sudo systemctl enable postgresql-9.6
Canvieu la contrasenya de l'usuari PostgreSQL predeterminat.
sudo passwd postgres
Canvia a l' postgresusuari.
su - postgres
Creeu un usuari nou escrivint:
createuser sonar
Canvia a l'intèrpret d'ordres PostgreSQL.
psql
Establiu una contrasenya per a l'usuari acabat de crear per a la base de dades SonarQube.
ALTER USER sonar WITH ENCRYPTED password 'StrongPassword';
Creeu una base de dades nova per a la base de dades PostgreSQL executant:
CREATE DATABASE sonar OWNER sonar;
Sortida de la psqlclosca:
\q
Torneu a l'usuari sudo executant l' exitordre.
Baixeu l'arxiu de fitxers d'instal·lació de SonarQube.
wget https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-6.4.zip
Sempre podeu cercar l'enllaç a la darrera versió de l'aplicació a la pàgina de descàrrega de SonarQube .
Instal·leu descomprimir executant:
sudo yum -y install unzip
Descomprimiu l'arxiu amb l'ordre següent.
sudo unzip sonarqube-6.4.zip -d /opt
Canvia el nom del directori:
sudo mv /opt/sonarqube-6.4 /opt/sonarqube
Obriu el fitxer de configuració de SonarQube amb el vostre editor de text preferit.
sudo nano /opt/sonarqube/conf/sonar.properties
Busca les línies següents.
#sonar.jdbc.username=
#sonar.jdbc.password=
Descomenteu i proporcioneu el nom d'usuari i la contrasenya de PostgreSQL de la base de dades que hem creat anteriorment. Hauria de semblar:
sonar.jdbc.username=sonar
sonar.jdbc.password=StrongPassword
A continuació, cerqueu:
#sonar.jdbc.url=jdbc:postgresql://localhost/sonar
Descomenteu la línia, deseu el fitxer i sortiu de l'editor.
El SonarQube es pot iniciar directament mitjançant l'script d'inici proporcionat al paquet d'instal·lació. Com a qüestió de comoditat, hauríeu de configurar un fitxer d'unitat Systemd per a SonarQube.
sudo nano /etc/systemd/system/sonar.service
Omple el fitxer amb:
[Unit]
Description=SonarQube service
After=syslog.target network.target
[Service]
Type=forking
ExecStart=/opt/sonarqube/bin/linux-x86-64/sonar.sh start
ExecStop=/opt/sonarqube/bin/linux-x86-64/sonar.sh stop
User=root
Group=root
Restart=always
[Install]
WantedBy=multi-user.target
Inicieu l'aplicació executant:
sudo systemctl start sonar
Habiliteu el servei SonarQube perquè s'iniciï automàticament en el moment de l'arrencada.
sudo systemctl enable sonar
Per comprovar si el servei s'està executant, executeu:
sudo systemctl status sonar
De manera predeterminada, SonarQube escolta localhost al port 9000. En aquest tutorial, utilitzarem Apache com a servidor intermediari invers perquè es pugui accedir a l'aplicació mitjançant el port HTTP estàndard. Instal·leu el servidor web Apache executant:
sudo yum -y install httpd
Creeu un nou host virtual.
sudo nano /etc/httpd/conf.d/sonar.yourdomain.com.conf
Omple el fitxer amb:
<VirtualHost *:80>
ServerName sonar.yourdomain.com
ServerAdmin me@yourdomain.com
ProxyPreserveHost On
ProxyPass / http://localhost:9000/
ProxyPassReverse / http://localhost:9000/
TransferLog /var/log/httpd/sonar.yourdomain.com_access.log
ErrorLog /var/log/httpd/sonar.yourdomain.com_error.log
</VirtualHost>
Inicieu Apache i activeu-lo perquè s'iniciï automàticament en el moment de l'arrencada:
sudo systemctl start httpd
sudo systemctl enable httpd
Permet el port HTTP necessari a través del tallafoc del sistema.
sudo firewall-cmd --add-service=http --permanent
sudo firewall-cmd --reload
Inicieu el servei SonarQube:
sudo systemctl start sonar
També haureu de desactivar SELinux:
sudo setenforce 0
SonarQube està instal·lat al vostre servidor, accediu al tauler a l'adreça següent.
http://sonar.yourdomain.com
Inicieu la sessió amb el compte d'administrador inicial admini admin. Ara podeu utilitzar SonarQube per analitzar contínuament el codi que heu escrit.
Errada
Si instal·leu SonarQube 7.1 (o posterior), feu els canvis següents perquè les versions més noves d'Elasticsearch no es poden executar com a usuari root.
- Actualitzar els permisos:
chown -R sonar:sonar /opt/sonarqube
- Modificar
/opt/sonarqube/bin/linux-x86-64/sonar.sh, canviar #RUNASper ser " sonar".
- Modificar
/etc/systemd/system/sonar.service, canviar el grup d'usuaris perquè sigui " sonar".