Salah satu tools yang banyak digunakan untuk analisa kualitas dari code yang dibuat adalah dengan menggunakan SonarQube. Untuk banyak orang SonarQube versi gratis sudah cukup, tetapi sangat disarankan untuk menggunakan SonarQube versi berbayar, karena lebih banyak fitur dan tidak terbatas hanya pada 1 branch.
Beberapa fitur dari SonarQube:
– Release Quality Code
– Application Security
– Technical Debt
Untuk mendapatkan hasil maksimal, minimal kebutuhan server SonarQube
4 GB Memory 40 GB SSD 2 CPU
spesifikasi tersebut telah digunakan oleh 30 Developer dan 100 lebih repository tanpa ada kendala yang berarti.
Update System
Sudah menjadi standar kalo update system itu harus sering-sering dilakukan, untuk mendapatkan paket terbaru dari aplikasi yang di install di sistem anda. Disini kita akan update dan install paket-paket terbaru yang tersedia untuk Ubuntu 20.04
sudo apt update sudo apt upgrade -y
Install Dependency
Install dependency yang dibutuhkan untuk memuluskan proses instalasi SonarQube di Ubuntu
sudo apt install wget unzip curl gnupg2 ca-certificates lsb-release -y
Install Java JRE
Java JRE dibutuhkan untuk menjalankan SonarQube dan Elasticsearch, saat ini Java yang didukung adalah Java 11, jangan menginstall diatas versi 11 karena ada banyak masalah.
sudo apt install openjdk-11-jre -y
Install PostgreSQL Database
Sebagai database kita akan menggunakan PostgreSQL yang didukung oleh SonarQube, saat ini versi yang tersedia di Ubuntu 20.04 masih di support.
sudo apt install postgresql -y
Buat user untuk Sonarqube
# login ke database postgres sudo -u postgres psql # Buat user sonarqube create user sonarqube; # Set password user sonarqube ALTER USER sonarqube WITH ENCRYPTED password 'HkxnfkaakmLihgmkRvj7'; # buat database sonarqube yang dimiliki oleh user sonarqube CREATE DATABASE sonarqube OWNER sonarqube;
ganti HkxnfkaakmLihgmkRvj7
dengan password random.
Download SonarQube 8.8
Download versi terbaru SonarQube dari situs resminya
wget https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-8.8.0.42792.zip
Ekstrak Sonarqube
sudo unzip sonarqube-8.8.0.42792.zip -d /opt/
Ubah nama folder sonarqube-8.8.0.42792
sudo mv /opt/sonarqube-8.8.0.42792 /opt/sonarqube
Update konfigurasi Sonarqube di file /opt/sonarqube/conf/sonar.properties
sonar.jdbc.username=sonarqube sonar.jdbc.password=HkxnfkaakmLihgmkRvj7 sonar.jdbc.url=jdbc:postgresql://localhost/sonarqube
Buat User sonar
Untuk menjalankan sonarqube, akan dibuatkan satu user khusus.
buat group sonar
sudo groupadd sonar
buat user sonar
sudo useradd -d /opt/sonarqube/ -g sonar sonar
Ubah permission /opt/sonarqube agar bisa diakses oleh user sonar
sudo chown sonar:sonar -R /opt/sonarqube
Update vm.max_map_count
Update nilai vm.max_map_count di server anda, ini dibutuhkan untuk menjalankan Elasticsearch yang sudah di bundle dengan SonarQube.
echo "vm.max_map_count = 262144" | sudo tee -a /etc/sysctl.conf # update sysctl sudo sysctl --system
Jalankan Sonarqube
Jalankan SonarQube dengan perintah
sudo -u sonar /opt/sonarqube/bin/linux-x86-64/sonar.sh start
Konfigurasi default SonarQube hanya bisa diakses dari localhost dengan port 9000, agar dapat diakses dari luar (public IP/LAN), ubah
#sonar.web.host=0.0.0.0
menjadi
sonar.web.host=0.0.0.0
lalu restart SonarQube
sudo -u sonar /opt/sonarqube/bin/linux-x86-64/sonar.sh restart
sekarang SonarQube sudah bisa diakses dari http://IP-SERVER:9000
Login dengan
username = admin password = admin