Előfeltételek
1. lépés: Végezzen rendszerfrissítést
2. lépés: Telepítse a Java-t
3. lépés: Telepítse és konfigurálja a PostgreSQL-t
4. lépés: Töltse le és konfigurálja a SonarQube-ot
5. lépés: A Systemd szolgáltatás konfigurálása
5. lépés: A fordított proxy konfigurálása
6. lépés: Konfigurálja a tűzfalat
Hibajegyzék
A SonarQube egy nyílt forráskódú eszköz a minőségbiztosítási rendszerek fejlesztéséhez. Java nyelven íródott, és több adatbázist is támogat. Lehetővé teszi a kód folyamatos ellenőrzését, az alkalmazás állapotának megjelenítését és az újonnan bevezetett problémák kiemelését. Kódelemzőket tartalmaz, amelyek fel vannak szerelve a trükkös problémák észlelésére. Könnyen integrálható a DevOps-szal is.
Ebben az oktatóanyagban a SonarQube legújabb verzióját telepítjük CentOS 7 rendszerre.
Megjegyzés: Ezt a dokumentumot eredeti közzététele óta frissítették. Lásd az „Errata” részt a lábjegyzetekben.
Előfeltételek
- Vultr 64 bites CentOS 7 szerverpéldány legalább 2 GB RAM-mal.
- Egy sudo felhasználó .
Mielőtt bármilyen csomagot telepítene a CentOS-kiszolgálópéldányra, javasoljuk a rendszer frissítését. Jelentkezzen be a sudo felhasználóval, és futtassa a következő parancsokat a rendszer frissítéséhez.
sudo yum -y install epel-release
sudo yum -y update
sudo shutdown -r now
Miután a rendszer befejezte az újraindítást, jelentkezzen be újra sudo felhasználóként, és folytassa a következő lépéssel.
2. lépés: Telepítse a Java-t
Töltse le az Oracle SE JDK RPM csomagot a következő beírásával:
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"
Telepítse a letöltött csomagot a következő beírásával:
sudo yum -y localinstall jdk-8u131-linux-x64.rpm
Most már ellenőrizheti a Java verzióját a következő beírásával:
java -version
3. lépés: Telepítse és konfigurálja a PostgreSQL-t
Telepítse a PostgreSQL tárolót a következő beírásával:
sudo rpm -Uvh https://download.postgresql.org/pub/repos/yum/9.6/redhat/rhel-7-x86_64/pgdg-centos96-9.6-3.noarch.rpm
Telepítse a PostgreSQL adatbázis-kiszolgálót a következő futtatásával:
sudo yum -y install postgresql96-server postgresql96-contrib
Az adatbázis inicializálása:
sudo /usr/pgsql-9.6/bin/postgresql96-setup initdb
Szerkessze az /var/lib/pgsql/9.6/data/pg_hba.confMD5-alapú hitelesítés engedélyezéséhez.
sudo nano /var/lib/pgsql/9.6/data/pg_hba.conf
Keresse meg a következő sorokat, és váltson peererre trustés idnet-ra 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
Frissítés után a konfigurációnak az alábbiak szerint kell kinéznie.
# 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
Indítsa el a PostgreSQL szervert, és engedélyezze, hogy rendszerindításkor automatikusan elinduljon a következő futással:
sudo systemctl start postgresql-9.6
sudo systemctl enable postgresql-9.6
Módosítsa az alapértelmezett PostgreSQL-felhasználó jelszavát.
sudo passwd postgres
Váltás a postgresfelhasználóra.
su - postgres
Hozzon létre egy új felhasználót a következő beírásával:
createuser sonar
Váltson a PostgreSQL rendszerhéjra.
psql
Állítson be jelszót a SonarQube adatbázis újonnan létrehozott felhasználójának.
ALTER USER sonar WITH ENCRYPTED password 'StrongPassword';
Hozzon létre egy új adatbázist a PostgreSQL adatbázishoz a következő futtatással:
CREATE DATABASE sonar OWNER sonar;
Kilépés a psqlhéjból:
\q
Váltson vissza a sudo felhasználóra a exitparancs futtatásával .
Töltse le a SonarQube telepítőfájl archívumát.
wget https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-6.4.zip
A SonarQube letöltési oldalán bármikor megkeresheti az alkalmazás legújabb verziójára mutató hivatkozást .
Telepítse a kicsomagolást a következő futtatásával:
sudo yum -y install unzip
Csomagolja ki az archívumot a következő paranccsal.
sudo unzip sonarqube-6.4.zip -d /opt
A könyvtár átnevezése:
sudo mv /opt/sonarqube-6.4 /opt/sonarqube
Nyissa meg a SonarQube konfigurációs fájlt kedvenc szövegszerkesztőjével.
sudo nano /opt/sonarqube/conf/sonar.properties
Keresse meg a következő sorokat.
#sonar.jdbc.username=
#sonar.jdbc.password=
Törölje a megjegyzéseket, és adja meg a korábban létrehozott adatbázis PostgreSQL felhasználónevét és jelszavát. Így kell kinéznie:
sonar.jdbc.username=sonar
sonar.jdbc.password=StrongPassword
Ezután keresse meg:
#sonar.jdbc.url=jdbc:postgresql://localhost/sonar
Törölje a sor megjegyzését, mentse a fájlt, és lépjen ki a szerkesztőből.
A SonarQube közvetlenül elindítható a telepítőcsomagban található indító szkript segítségével. A kényelem érdekében be kell állítania egy Systemd unit fájlt a SonarQube számára.
sudo nano /etc/systemd/system/sonar.service
Töltse fel a fájlt a következővel:
[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
Indítsa el az alkalmazást a következő futtatásával:
sudo systemctl start sonar
Engedélyezze a SonarQube szolgáltatás automatikus indulását rendszerindításkor.
sudo systemctl enable sonar
A szolgáltatás futásának ellenőrzéséhez futtassa:
sudo systemctl status sonar
Alapértelmezés szerint a SonarQube a 9000-es porton figyeli a localhost-ot. Ebben az oktatóanyagban az Apache-t fogjuk használni fordított proxyként, így az alkalmazás a szabványos HTTP-porton keresztül érhető el. Telepítse az Apache webszervert a következő futtatásával:
sudo yum -y install httpd
Hozzon létre egy új virtuális gazdagépet.
sudo nano /etc/httpd/conf.d/sonar.yourdomain.com.conf
Töltse fel a fájlt a következővel:
<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>
Indítsa el az Apache-t, és engedélyezze, hogy rendszerindításkor automatikusan elinduljon:
sudo systemctl start httpd
sudo systemctl enable httpd
Engedélyezze a szükséges HTTP-portot a rendszer tűzfalán.
sudo firewall-cmd --add-service=http --permanent
sudo firewall-cmd --reload
Indítsa el a SonarQube szolgáltatást:
sudo systemctl start sonar
A SELinuxot is le kell tiltania:
sudo setenforce 0
A SonarQube telepítve van a szerverére, nyissa meg az irányítópultot a következő címen.
http://sonar.yourdomain.com
Jelentkezzen be a kezdeti rendszergazdai fiókkal, adminmajd admin. Mostantól a SonarQube segítségével folyamatosan elemezheti a megírt kódot.
Hibajegyzék
A SonarQube 7.1 (vagy újabb) telepítésekor hajtsa végre az alábbi módosításokat, mert az Elasticsearch újabb verziói nem futtathatók root felhasználóként.
- Frissítési engedélyek:
chown -R sonar:sonar /opt/sonarqube
- Módosít
/opt/sonarqube/bin/linux-x86-64/sonar.sh, módosíts #RUNASerre: " sonar".
- Módosítás
/etc/systemd/system/sonar.service, módosítsa a felhasználói csoportot a következőre: " sonar".