Forutsetninger
Trinn 1: Utfør en systemoppdatering
Trinn 2: Installer Java
Trinn 3: Installer og konfigurer PostgreSQL
Trinn 4: Last ned og konfigurer SonarQube
Trinn 5: Konfigurer Systemd-tjenesten
Trinn 5: Konfigurer omvendt proxy
Trinn 6: Konfigurer brannmur
Errata
SonarQube er et åpen kildekodeverktøy for utvikling av kvalitetssystem. Den er skrevet i Java og støtter flere databaser. Det gir muligheter til å kontinuerlig inspisere kode, vise helsen til en applikasjon og fremheve nylig introduserte problemer. Den inneholder kodeanalysatorer som er utstyrt for å oppdage vanskelige problemer. Den integreres også enkelt med DevOps.
I denne opplæringen vil vi installere den nyeste versjonen av SonarQube på CentOS 7.
Merk: Dette dokumentet har blitt oppdatert siden det opprinnelig ble publisert. Se avsnittet "Errata" i fotnotene.
Forutsetninger
- En Vultr 64-bit CentOS 7 serverforekomst med minst 2 GB RAM.
- En sudo-bruker .
Før du installerer noen pakker på CentOS-serverforekomsten, anbefales det å oppdatere systemet. Logg på med sudo-brukeren og kjør følgende kommandoer for å oppdatere systemet.
sudo yum -y install epel-release
sudo yum -y update
sudo shutdown -r now
Når systemet er ferdig med å starte på nytt, logger du på igjen som sudo-bruker og går videre til neste trinn.
Trinn 2: Installer Java
Last ned Oracle SE JDK RPM-pakken ved å skrive:
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"
Installer den nedlastede pakken ved å skrive:
sudo yum -y localinstall jdk-8u131-linux-x64.rpm
Du kan nå sjekke versjonen av Java ved å skrive:
java -version
Trinn 3: Installer og konfigurer PostgreSQL
Installer PostgreSQL-depot ved å skrive:
sudo rpm -Uvh https://download.postgresql.org/pub/repos/yum/9.6/redhat/rhel-7-x86_64/pgdg-centos96-9.6-3.noarch.rpm
Installer PostgreSQL databaseserver ved å kjøre:
sudo yum -y install postgresql96-server postgresql96-contrib
Initialiser databasen:
sudo /usr/pgsql-9.6/bin/postgresql96-setup initdb
Rediger for /var/lib/pgsql/9.6/data/pg_hba.confå aktivere MD5-basert autentisering.
sudo nano /var/lib/pgsql/9.6/data/pg_hba.conf
Finn følgende linjer og bytt peertil trustog idnettil 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
Når den er oppdatert, skal konfigurasjonen se ut som den som vises nedenfor.
# 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
Start PostgreSQL-serveren og la den starte automatisk ved oppstart ved å kjøre:
sudo systemctl start postgresql-9.6
sudo systemctl enable postgresql-9.6
Endre passordet for standard PostgreSQL-bruker.
sudo passwd postgres
Bytt til postgresbrukeren.
su - postgres
Opprett en ny bruker ved å skrive:
createuser sonar
Bytt til PostgreSQL-skallet.
psql
Angi et passord for den nyopprettede brukeren for SonarQube-databasen.
ALTER USER sonar WITH ENCRYPTED password 'StrongPassword';
Opprett en ny database for PostgreSQL-databasen ved å kjøre:
CREATE DATABASE sonar OWNER sonar;
Utgang fra psqlskallet:
\q
Bytt tilbake til sudo-brukeren ved å kjøre exitkommandoen.
Last ned SonarQube-installasjonsfilarkivet.
wget https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-6.4.zip
Du kan alltid se etter lenken til den nyeste versjonen av applikasjonen på SonarQube- nedlastingssiden .
Installer unzip ved å kjøre:
sudo yum -y install unzip
Pakk ut arkivet ved å bruke følgende kommando.
sudo unzip sonarqube-6.4.zip -d /opt
Gi nytt navn til katalogen:
sudo mv /opt/sonarqube-6.4 /opt/sonarqube
Åpne SonarQube-konfigurasjonsfilen ved å bruke din favoritttekstredigerer.
sudo nano /opt/sonarqube/conf/sonar.properties
Finn følgende linjer.
#sonar.jdbc.username=
#sonar.jdbc.password=
Fjern kommentarer og oppgi PostgreSQL-brukernavnet og passordet til databasen som vi har opprettet tidligere. Det skal se slik ut:
sonar.jdbc.username=sonar
sonar.jdbc.password=StrongPassword
Deretter finner du:
#sonar.jdbc.url=jdbc:postgresql://localhost/sonar
Fjern kommentaren til linjen, lagre filen og gå ut av redigeringsprogrammet.
SonarQube kan startes direkte ved å bruke oppstartsskriptet i installasjonspakken. For enkelhets skyld bør du sette opp en Systemd-enhetsfil for SonarQube.
sudo nano /etc/systemd/system/sonar.service
Fyll filen med:
[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
Start applikasjonen ved å kjøre:
sudo systemctl start sonar
Aktiver SonarQube-tjenesten til å starte automatisk ved oppstart.
sudo systemctl enable sonar
For å sjekke om tjenesten kjører, kjør:
sudo systemctl status sonar
Som standard lytter SonarQube til localhost på port 9000. I denne opplæringen vil vi bruke Apache som omvendt proxy slik at applikasjonen kan nås via standard HTTP-porten. Installer Apache-nettserveren ved å kjøre:
sudo yum -y install httpd
Opprett en ny virtuell vert.
sudo nano /etc/httpd/conf.d/sonar.yourdomain.com.conf
Fyll filen med:
<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>
Start Apache og la den starte automatisk ved oppstart:
sudo systemctl start httpd
sudo systemctl enable httpd
Tillat den nødvendige HTTP-porten gjennom systemets brannmur.
sudo firewall-cmd --add-service=http --permanent
sudo firewall-cmd --reload
Start SonarQube-tjenesten:
sudo systemctl start sonar
Du må også deaktivere SELinux:
sudo setenforce 0
SonarQube er installert på serveren din, gå til dashbordet på følgende adresse.
http://sonar.yourdomain.com
Logg på med den opprinnelige administratorkontoen, adminog admin. Du kan nå bruke SonarQube til kontinuerlig å analysere koden du har skrevet.
Errata
Hvis du installerer SonarQube 7.1 (eller nyere), gjør endringene nedenfor fordi nyere versjoner av Elasticsearch ikke kan kjøres som root-bruker.
- Oppdater tillatelser:
chown -R sonar:sonar /opt/sonarqube
- Endre
/opt/sonarqube/bin/linux-x86-64/sonar.sh, endre #RUNAStil å være " sonar".
- Endre
/etc/systemd/system/sonar.service, endre brukergruppen til å være " sonar".