Instal SonarQube di Ubuntu 20.04

Instal SonarQube di Ubuntu 20.04

Dalam tutorial ini, Anda akan belajar cara menginstal SonarQube di Ubuntu 20.04. SonarQube ® adalah alat tinjauan kode otomatis untuk mendeteksi bug, kerentanan, dan bau kode dalam kode Anda. Itu dapat berintegrasi dengan alur kerja Anda yang ada untuk memungkinkan pemeriksaan kode berkelanjutan di seluruh cabang proyek Anda dan menarik permintaan.

Baca lebih lanjut tentang SonarQube di halaman SonarQube.

Instal SonarQube di Ubuntu 20.04

Prasyarat

Ada sejumlah prasyarat yang diperlukan untuk menginstal dan menjalankan SonarQube di Ubuntu 20.04 seperti yang disediakan di bawah ini;

Persyaratan Perangkat Keras Sistem

  • Pastikan Anda menjalankan sistem 64-bit karena SonarQube tidak mendukung arsitektur sistem 32-bit.
uname -m
x86_64
  • Setidaknya 2GB RAM (16GB + RAM untuk useran perusahaan) dan 2 inti vCPU (8+ inti vCPU untuk useran perusahaan) untuk useran skala kecil
  • Disk dengan kinerja baca & tulis yang sangat baik.
  • Ruang disk yang cukup tergantung pada seberapa banyak kode yang Anda analisis dengan SonarQube.

Instal Java 11 di Ubuntu 20.04

Java 11 dapat bekerja untuk server dan pemindai SonarQube. Oleh karena itu, jalankan perintah di bawah ini untuk menginstal Java 11 di Ubuntu 20.04 (Anda dapat memilih untuk menginstal JRE atau OpenJDK;

Perhatikan bahwa OpenJDK 11 atau JRE 11 adalah versi default pada repo utama Ubuntu 20.04 default;

apt update

Jika Anda ingin menggunakan JRE, jalankan perintah di bawah ini untuk menginstalnya di Ubuntu 20.04;

apt install default-jre

Jika Anda ingin menggunakan OpenJDK, jalankan perintah di bawah ini;

apt install default-jdk

Instal dan Siapkan Basis Data untuk SonarQube

SonarQube mendukung PostgreSQL (versi 9.3-9.6, 10-12), Oracle (ekstensi XE, 11G, 12C, 18C 19C) atau MSSQL untuk sistem Windows.

Dalam tutorial ini, kita akan menginstal dan mengatur SonarQube di Ubuntu 20.04.

Instal PostgreSQL 12 di Ubuntu 20.04

Instal PostgreSQL 12 di Ubuntu 20.04 dengan menjalankan perintah di bawah ini;

apt install postgresql postgresql-contrib

Login sebagai superuser PostgreSQL dan Buat SonarQube PostgreSQL Database dan Database User

sudo -Hiu postgres
createuser sonaradmin
createdb -O sonaradmin sonarqubedb
psql
ALTER USER sonaradmin WITH ENCRYPTED password 'changeme';
q
exit

Aktifkan Filter Komputasi Aman

seccomp filter, diperlukan oleh Elasticsearch, biasanya diaktifkan secara default di Ubuntu 20.04. Untuk memeriksa apakah seccomp tersedia di kernel Anda dengan:

grep SECCOMP /boot/config-$(uname -r)

Jika Anda melihat output seperti itu, maka seccomp filter diaktifkan;

CONFIG_SECCOMP=y CONFIG_HAVE_ARCH_SECCOMP_FILTER=y CONFIG_SECCOMP_FILTER=y

Font Laporan Eksekutif

Fontconfig dan font FreeType diperlukan untuk menghasilkan laporan eksekutif SonarQube. Instal mereka sebagai berikut;

apt install fontconfig-config libfreetype6

Instal dan Konfigurasi SonarQube di Ubuntu 20.04

Setelah semua prasyarat terpenuhi, lanjutkan untuk menginstal SonarQube di Ubuntu 20.04.

Download file Arsip SonarQube

Ada berbagai edisi SonarQube. Dalam pengaturan ini, kami akan menginstal versi komunitas. Dengan demikian, navigasikan ke halaman downloadan SonarQube dan ambil file zip SonarQube.

Anda juga bisa mendapatkan tautan downloadan dari halaman binari SonarQube dan menariknya menggunakan perintah wget atau curl

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

Instal SonarQube di Ubuntu 20.04

Ekstrak SonarQube ke beberapa direktori, misalnya /optdirektori.

apt install zip
unzip sonarqube-8.7.0.41497.zip -d /opt/

Ganti nama direktori SonarQube untuk menghapus nomor versi;

mv /opt/sonarqube{-8.7.0.41497,}

Buat Akun Pengguna Sistem SonarQube

SonarQube tidak boleh dijalankan sebagai root. Dengan demikian, Anda dapat membuat akun non admin untuk menjalankan SonarQube sebagai berikut;

useradd -M -d /opt/sonarqube/ -r -s /bin/bash sonarqube

Atur kepemilikan /opt/sonarqubeke user sonar yang dibuat di atas.

chown -R sonarqube: /opt/sonarqube

Konfigurasi SonarQube

Tetapkan detail koneksi database sesuai dengan pengaturan PostgreSQL Anda di atas.

vim /opt/sonarqube/conf/sonar.properties
# DATABASE... # User credentials.... sonar.jdbc.username=sonaradmin sonar.jdbc.password=changeme... #----- PostgreSQL 9.3 or greater # By default the schema named "public" is used. It can be overridden with the parameter "currentSchema". #sonar.jdbc.url=jdbc:postgresql://localhost/sonarqube?currentSchema=my_schema sonar.jdbc.url=jdbc:postgresql://localhost/sonarqubedb

Simpan dan keluar dari file.

Perubahan di atas sudah cukup untuk menjalankan SonarQube di Ubuntu 20.04 dalam pengaturan dasarnya.

Menjalankan SonarQube di Ubuntu 20.04

Sebanyak Anda dapat memulai SonarQube dalam mode mandiri menggunakan /opt/sonarqube/bin/linux-x86-64/sonar.shskrip dengan meneruskan startopsi seperti di /opt/sonarqube/bin/linux-x86-64/sonar.sh start, lebih baik menggunakan unit service systemd.

Buat file Unit Layanan SonarQube Systemd;

cat > /etc/systemd/system/sonarqube.service << 'EOL' [Unit] Description=SonarQube service After=syslog.target network.target [Service] Type=simple User=sonarqube Group=sonarqube PermissionsStartOnly=true ExecStart=/bin/nohup java -Xms32m -Xmx32m -Djava.net.preferIPv4Stack=true -jar /opt/sonarqube/lib/sonar-application-8.7.0.41497.jar StandardOutput=syslog LimitNOFILE=131072 LimitNPROC=8192 TimeoutStartSec=5 Restart=always SuccessExitStatus=143 [Install] WantedBy=multi-user.target EOL

Pastikan untuk mengganti jalur, /opt/sonarqube/lib/sonar-application-8.7.0.41497.jar, sesuai.

Reload konfigurasi systemd;

systemctl daemon-reload

Tetapkan jumlah maksimum peta memori untuk elasticsearch;

echo 'vm.max_map_count=262144' >> /etc/sysctl.conf
sysctl -p

Mulai dan aktifkan service SonarQube di Ubuntu 20.04;

systemctl enable --now sonarqube

Periksa statusnya;

systemctl status sonarqube.service
● sonarqube.service - SonarQube service Loaded: loaded (/etc/systemd/system/sonarqube.service; enabled; vendor preset: enabled) Active: active (running) since Tue 2021-02-16 19:36:45 UTC; 2min 23s ago Main PID: 34811 (java) Tasks: 118 (limit: 2282) Memory: 1.4G CGroup: /system.slice/sonarqube.service ├─34811 java -Xms32m -Xmx32m -Djava.net.preferIPv4Stack=true -jar /opt/sonarqube/lib/sonar-application-8.7.0.41497.jar ├─34834 /usr/lib/jvm/java-11-openjdk-amd64/bin/java -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=75 -XX:+UseCMSInitiatingOccupancyOnly -Djava.io> ├─34921 /usr/lib/jvm/java-11-openjdk-amd64/bin/java -Djava.awt.headless=true -Dfile.encoding=UTF-8 -Djava.io.tmpdir=/opt
/sonarqube/temp -XX:-OmitStackTraceInF> └─34980 /usr/lib/jvm/java-11-openjdk-amd64/bin/java -Djava.awt.headless=true -Dfile.encoding=UTF-8 -Djava.io.tmpdir=/opt/sonarqube/temp -XX:-OmitStackTraceInF> Feb 16 19:36:47 ubuntu20 nohup[34811]: OpenJDK 64-Bit Server VM warning: Option UseConcMarkSweepGC was deprecated in version 9.0 and will likely be removed in a future rel> Feb 16 19:37:27 ubuntu20 nohup[34811]: 2021.02.16 19:37:27 INFO app[][o.s.a.SchedulerImpl] Process[es] is up Feb 16 19:37:27 ubuntu20 nohup[34811]: 2021.02.16 19:37:27 INFO app[][o.s.a.ProcessLauncherImpl] Launch process[[key='web', ipcIndex=2, logFilenamePrefix=web]] from [/opt> Feb 16 19:37:47 ubuntu20 nohup[34811]: 2021.02.16 19:37:47 WARN app[][startup] ###########################################################################################> Feb 16 19:37:47 ubuntu20 nohup[34811]: 2021.02.16 19:37:47 WARN app[][startup] Default Administrator credentials are still being used. Make sure to change the password or> Feb 16 19:37:47 ubuntu20 nohup[34811]: 2021.02.16 19:37:47 WARN app[][startup] ###########################################################################################> Feb 16 19:37:48 ubuntu20 nohup[34811]: 2021.02.16 19:37:48 INFO app[][o.s.a.SchedulerImpl] Process[web] is up Feb 16 19:37:48 ubuntu20 nohup[34811]: 2021.02.16 19:37:48 INFO app[][o.s.a.ProcessLauncherImpl] Launch process[[key='ce', ipcIndex=3, logFilenamePrefix=ce]] from [/opt/s> Feb 16 19:37:55 ubuntu20 nohup[34811]: 2021.02.16 19:37:55 INFO app[][o.s.a.SchedulerImpl] Process[ce] is up Feb 16 19:37:55 ubuntu20 nohup[34811]: 2021.02.16 19:37:55 INFO app[][o.s.a.SchedulerImpl] SonarQube is up

Anda dapat menemukan semua log di bawah, /opt/sonarqube/logsdirektori.

ls /opt/sonarqube/logs
access.log ce.log es.log README.txt sonar.log web.log

Mengakses Interface Web SonarQube

Untuk mengakses interface Web SonarQube, Anda perlu menginstal dan menyiapkan server web untuk mem-proksi permintaan ke SonarQube yang berjalan secara lokal.

Anda dapat menggunakan server web Apache atau Nginx. Kami menggunakan nanti dalam panduan ini.

apt install nginx -y

Buat konfigurasi situs SonarQube Nginx dengan pengaturan proxy.

cat > /etc/nginx/sites-available/sonarqube << 'EOL' server{ listen 80; server_name sonarqube.kifarunix-demo.com; access_log /var/log/nginx/sonarqube.access.log; error_log /var/log/nginx/sonarqube.error.log; proxy_buffers 16 64k; proxy_buffer_size 128k; location / { proxy_pass http://127.0.0.1:9000; proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504; proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto http; } } EOL

Periksa error sintaks Nginx;

nginx -t

Jika Anda mendapatkan hasil seperti itu, Anda siap melakukannya;

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful

Aktifkan situs SonarQube Nginx;

ln -s /etc/nginx/sites-available/sonarqube /etc/nginx/sites-enabled/

Restart Nginx;

systemctl restart nginx

Buka port 80/tcp pada firewall atau port 443/tcp tergantung pada pengaturan Anda;

ufw allow "Nginx Full"

Akses SonarQube menggunakan alamat http://sonarqube-server-host-IP-or-hostname.

Anda akan diminta untuk memasukkan detail login.

Kredensial otentikasi default adalah Username: admin Password: admin

Saat diminta, setel ulang password dan lanjutkan ke interface web SonarQube.

Dan di sana Anda pergi. Anda telah mempelajari cara menginstal SonarQube di Ubuntu 20.04.

Referensi

Menginstal SonarQube

Bacaan lebih lanjut

Dokumentasi SonarQube

Tutorial lainnya

Instal Nexus Repository Manager di Ubuntu 20.04

Instal dan atur GVM 20.08 di Debian 10

Instal Signal Messenger di Ubuntu 20.04

Instal NoMachine di Ubuntu 20.04

Instal dan Setup GVM 20.08 di Ubuntu 20.04