SonarQube adalah platform open source untuk terus memeriksa kualitas kode aplikasi. Itu ditulis dalam bahasa Java dan mendukung banyak database. Anda dapat memeriksa kode dan memeriksa kesehatan aplikasi untuk lebih dari 20 bahasa pemrograman termasuk Java, C, C++, C#, PHP, dan bahasa web seperti JavaScript, HTML, dan CSS. SonarQube dapat menganalisis kode sumber, menemukan kerentanan keamanan, mendeteksi bug, dan menampilkan hasilnya di dasbor berbasis web. Anda dapat dengan mudah mengintegrasikan SonarQube dengan Maven, Ant, Gradle, MSBuild, LDAP, Active Directory, dan GitHub.
Dalam tutorial ini, kita akan mempelajari cara menginstal SonarQube di server Ubuntu 18.04 LTS (Bionic Beaver).
Persyaratan
- Server yang menjalankan Ubuntu 18.04.
- Pengguna non-root dengan hak istimewa sudo.
Memulai
Sebelum memulai, Anda perlu memperbarui sistem Anda dengan versi terbaru. Anda dapat melakukannya dengan menjalankan perintah berikut:
sudo apt-get update -y
sudo apt-get upgrade -y
Setelah sistem Anda diperbarui, mulai ulang sistem untuk menerapkan perubahan.
Instal Java
SonarQube ditulis dalam bahasa Java, jadi Anda perlu menginstal Java ke sistem Anda. Pertama, tambahkan repositori Java dengan perintah berikut:
sudo add-apt-repository ppa:webupd8team/java
Selanjutnya, perbarui repositori dan instal Java dengan perintah berikut:
sudo apt-get update -y
sudo apt-get install Oracle-Java8-installer -y
Setelah Java diinstal, periksa versi Java menggunakan perintah berikut:
java -versi
Keluaran:
openjdk versi "10.0.2" 2018-07-17OpenJDK Runtime Environment (build 10.0.2+13-Ubuntu-1ubuntu0.18.04.3)OpenJDK 64-Bit Server VM (build 10.0.2+13-Ubuntu-1ubuntu0 .18.04.3, mode campuran)
Instal dan Konfigurasi PostgreSQL
Secara default, PostgreSQL versi terbaru tidak tersedia di repositori default Ubuntu 18.04. Jadi, Anda perlu menambahkan repositori PostgreSQL ke sistem Anda.
Anda dapat melakukannya dengan perintah berikut:
sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt/ `lsb_release -cs`-pgdg main">> /etc/apt/sources.list.d/pgdg .list'
wget -q https://www.postgresql.org/media/keys/ACCC4CF8.asc -O - | sudo apt-key add -
Selanjutnya, perbarui repositori dan instal PostgreSQL dengan perintah berikut:
sudo apt-get update -y
sudo apt-get install postgresql postgresql-contrib
Setelah instalasi selesai, periksa status PostgreSQL dengan perintah berikut:
sudo systemctl status postgresql
Keluaran:
? postgresql.service - PostgreSQL RDBMS Dimuat:dimuat (/lib/systemd/system/postgresql.service; diaktifkan; preset vendor:diaktifkan) Aktif:aktif (keluar) sejak Sun 2018-12-02 08:49:29 UTC; 4 jam 30 menit yang lalu Proses:1295 ExecStart=/bin/true (kode=keluar, status=0/SUCCESS) PID Utama:1295 (kode=keluar, status=0/SUCCESS)02 Des 08:49:29 ubuntu1804 systemd[1] :Memulai PostgreSQL RDBMS... 02 Des 08:49:29 ubuntu1804 systemd[1]:Memulai PostgreSQL RDBMS.
Selanjutnya, beralih ke pengguna postgres dengan perintah berikut:
su - postgres
Selanjutnya, buat pengguna sonar dengan perintah berikut:
buat sonar pengguna
Selanjutnya, beralih ke shell PostgreSQL dengan perintah berikut:
psql
Selanjutnya, atur kata sandi untuk pengguna sonar dan buat database sonar dengan perintah berikut:
UBAH PENGGUNA sonar DENGAN sandi 'sandi' yang DIENKRIPSI;
BUAT DATABASE sonar PEMILIK sonar;
Selanjutnya, keluar dari shell PostgreSQL:
\q
Instal dan Konfigurasi SonarQube
Pertama, buat pengguna untuk SonarQube dengan perintah berikut:
sudo adduser sonar
Selanjutnya, unduh SonarQube versi terbaru dengan perintah berikut:
wget https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-6.7.6.zip
Setelah unduhan selesai, unzip file yang diunduh dengan perintah berikut:
unzip sonarqube-6.7.6.zip
Selanjutnya, salin direktori yang diekstrak ke /opt dengan perintah berikut:
sudo cp -r sonarqube-6.7.6 /opt/sonarqube
Selanjutnya, berikan kepemilikan kepada pengguna sonar dengan perintah berikut:
sudo chown -R sonar:sonar /opt/sonarqube
Selanjutnya, Anda perlu mengkonfigurasi SonarQube untuk dijalankan sebagai pengguna sonar. Anda dapat melakukannya dengan perintah berikut:
sudo nano /opt/sonarqube/bin/linux-x86-64/sonar.sh
Lakukan perubahan berikut:
RUN_AS_USER=sonar
Simpan dan tutup file. Kemudian, buka file konfigurasi default SonarQube dan ubah kredensial database dengan yang kita buat sebelumnya:
sudo nano /opt/sonarqube/conf/sonar.properties
Lakukan perubahan berikut:
sonar.jdbc.username=sonarsonar.jdbc.password=passwordsonar.jdbc.url=jdbc:postgresql://localhost/sonarsonar.web.host=127.0.0.1sonar.search.javaOpts=-Xms512m -Xmx512mSimpan dan tutup file, setelah Anda selesai.
Buat file Layanan Systemd untuk SonarQube
Selanjutnya, Anda perlu membuat file layanan systemd untuk mengelola layanan SonarQube. Anda dapat melakukannya dengan perintah berikut:
sudo nano /etc/systemd/system/sonar.serviceTambahkan baris berikut:
[Unit]Description=SonarQube serviceAfter=syslog.target network.target[Service]Type=forkingExecStart=/opt/sonarqube/bin/linux-x86-64/sonar.sh startExecStop=/opt/sonarqube/bin/linux -x86-64/sonar.sh stopUser=sonarGroup=sonarRestart=always[Install]WantedBy=multi-user.targetSimpan dan tutup file, ketika Anda selesai. Kemudian, mulai layanan SonarQube dan aktifkan untuk memulai saat boot dengan perintah berikut:
sudo systemctl start sonar
sudo systemctl aktifkan sonarAnda dapat memeriksa status layanan SonarQube dengan perintah berikut:
sudo systemctl status sonarKeluaran:
? sonar.service - Layanan SonarQube Dimuat:dimuat (/etc/systemd/system/sonar.service; dinonaktifkan; preset vendor:diaktifkan) Aktif:aktif (berjalan) sejak Sun 2018-12-02 13:55:34 UTC; 2 menit 52 detik yang lalu Proses:2339 ExecStart=/opt/sonarqube/bin/linux-x86-64/sonar.sh start (kode=keluar, status=0/SUCCESS) PID Utama:2396 (pembungkus) Tugas:133 (batas:2323 ) CGroup:/system.slice/sonar.service ??2396 /opt/sonarqube/bin/linux-x86-64/./wrapper /opt/sonarqube/bin/linux-x86-64/../../conf /wrapper.conf wrapper.syslog.ident=SonarQ ??2399 java -Dsonar.wrapped=true -Djava.awt.headless=true -Xms8m -Xmx32m -Djava.library.path=./lib -classpath ../.. /lib/jsw/wrapper- ??2445 /usr/lib/jvm/java-8-Oracle/jre/bin/java -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=75 -XX:+UseCMSInitiatingOc ??2545 /usr/ lib/jvm/java-8-Oracle/jre/bin/java -Djava.awt.headless=true -Dfile.encoding=UTF-8 -Djava.io.tmpdir=/opt/sonarqube/temp - ??2622 /usr /lib/jvm/java-8-Oracle/jre/bin/java -Djava.awt.headless=true -Dfile.encoding=UTF-8 -Djava.io.tmpdir=/opt/sonarqube/temp -02 Desember 13:55:33 ubuntu1804 systemd[1]:Memulai layanan SonarQube... 02 Des 13:55:33 ubuntu1804 sonar.sh[2339]:Memulai SonarQube...02 Des 13:55:34 ubuntu1804 sonar.sh[2339]:Memulai SonarQube.02 Des 13:55:34 ubuntu1804 systemd[1]:Memulai layanan SonarQube .Konfigurasi Apache untuk SonarQube
Secara default, SonarQube mendengarkan pada port 9000. Jadi, Anda perlu menginstal dan mengkonfigurasi Apache sebagai proxy terbalik untuk mengakses SonarQube menggunakan port 80.
Untuk melakukannya, instal Apache dengan perintah berikut:
sudo apt-get install apache2 -ySelanjutnya, aktifkan modul mod_proxy dengan perintah berikut:
sudo a2enmod proxy
sudo a2enmod proxy_httpSelanjutnya, buat file virtual host Apache untuk SonarQube dengan perintah berikut:
sudo nano /etc/apache2/sites-available/sonar.confTambahkan baris berikut:
ServerName example.com ServerAdmin [dilindungi email] ProxyPreserveHost Di ProxyPass / http://127.0.0.1:9000/ ProxyPassReverse / http://127.0.0.1:9000/ TransferLog /var/log/ apache2/sonarm_access.log ErrorLog /var/log/Apache2/sonar_error.log Ganti example.com dengan nama domain Anda sendiri. Simpan dan tutup file. Kemudian, aktifkan file virtual host SonarQube dengan perintah berikut:
sudo a2ensite sonarTerakhir, restart layanan Apache dan SonarQube untuk menerapkan semua perubahan dengan perintah berikut:
sudo systemctl restart apache2
sudo systemctl restart sonarSecara default, SonarQube menyimpan log mereka di direktori /opt/sonarqube/logs. Anda dapat memeriksa log SonarQube dengan perintah berikut:
sudo tail -f /opt/sonarqube/logs/sonar.logKeluaran:
Meluncurkan JVM...Wrapper (Versi 3.2.3) http://wrapper.tanukisoftware.org Hak Cipta 1999-2006 Tanuki Software, Inc. Semua Hak Dilindungi Undang-Undang.2018.12.02 13:55:43 INFO app[] [o.s.a.AppFileSystem] Membersihkan atau membuat direktori temp /opt/sonarqube/temp2018.12.02 13:55:44 INFO app[][o.s.a.es.EsSettings] Elasticsearch mendengarkan di /127.0.0.1:90012018.12.02 13:55:45 INFO app [][o.s.a.p.ProcessLauncherImpl] Proses peluncuran[[key='es', ipcIndex=1, logFilenamePrefix=es]] dari [/opt/sonarqube/elasticsearch]:/opt/sonarqube/elasticsearch/bin/elasticsearch -Epath.conf=/opt/sonarqube/temp/conf/es2018.12.02 13:55:45 Aplikasi INFO[][o.s.a.SchedulerImpl] Menunggu Elasticsearch aktif dan berjalan2018.12.02 13:55:48 Aplikasi INFO[][o.e.p.PluginsService] tidak ada modul dimuat2018.12.02 13:55:48 Aplikasi INFO[][o.e.p.PluginsService] memuat plugin [org.elasticsearch.transport.Netty4Plugin]2018.12.02 13:56:34 Aplikasi INFO[][o.s.a.SchedulerImpl] Proses[es] sudah selesai2018. 12.02 13:56:34 Aplikasi INFO[][o.s.a.p.ProcessLauncherIm pl] Proses peluncuran[[key='web', ipcIndex=2, logFilenamePrefix=web]] dari [/opt/sonarqube]:/usr/lib/jvm/java-8-Oracle/jre/bin/java -Djava. awt.headless=true -Dfile.encoding=UTF-8 -Djava.io.tmpdir=/opt/sonarqube/temp -Xmx512m -Xms128m -XX:+HeapDumpOnOutOfMemoryError -cp ./lib/common/*:./lib/server /*:/opt/sonarqube/lib/jdbc/postgresql/postgresql-42.2.1.jar org.sonar.server.app.WebServer /opt/sonarqube/temp/sq-process420500314195865484propertiAnda juga dapat memeriksa log web SonarQube menggunakan perintah berikut:
sudo tail -f /opt/sonarqube/logs/web.logKeluaran:
2018.12.02 13:57:03 INFO web[][o.s.s.p.ServerPluginRepository] Menyebarkan plugin SonarJava / 4.15.0.12310 / 572454b93016ec73a53fe0e07b2ffdc356d21ba92018.12.02 13:57:03 plugin INFO web[][o.s.s.sluginPluginRepository Sonar][][o.s.s.slugin / 741861a29e5f9a26c6c99c06268facb6c4f4a8822018.12.02 13:57:03 INFO web [] [o.s.s.p.ServerPluginRepository] Deploy Plugin SonarPython / 1.8.0.1496 / 3fe3bc4d0273a5721ea2fb368dc45b1bb82fede32018.12.02 13:57:03 INFO web [] [o.s.s.p.ServerPluginRepository] Deploy Plugin SonarQube ::Plugins ::SCM ::Git / 1.3.0.869 / 4da53e3f9e55f4f2e5796625cb0c5768ed1520792018.12.02 13:57:03 INFO web[][o.s.s.p.ServerPluginRepository] Terapkan plugin SonarQube ::Plugin ::SCM ::SVN / 1.6.0.860 web[][o.s.s.p.ServerPluginRepository] Menyebarkan plugin SonarTS / 1.1.0.1079 / 042c9e65239a47d92d305f9767f730b3cc1e5ed32018.12.02 13:57:03 INFO web[][o.s.s.p.ServerPluginRepository] Menyebarkan plugin SonarXML / 1.4.3.1027 / 39588245cecf538bb27be4e496ff303b0143d20b2018.12.02 13:57:07 INFO web[][o.s.s.p.d.m.c.PostgresCharsetHandler] Verifikasi bahwa database charset mendukung UTF82018.12.02 13:57:09 INFO web[oletl. pattern=UrlPattern{inclusions=[/api/system/migrate_db/*, ...], exceptions=[/api/properties*, ...]}]2018.12.02 13:57:09 INFO web[][o.s.s.a. EmbeddedTomcat] Konektor HTTP diaktifkan pada port 90002018.12.02 13:57:16 INFO web[][o.s.s.p.UpdateCenterClient] Pusat pembaruan:https://update.sonarsource.org/update-center.properties (tanpa proxy)Akses SonarQube
SonarQube sekarang diinstal dan dikonfigurasi. Saatnya mengaksesnya melalui browser web.
Buka browser web Anda dan ketik URL http://example.com. Anda akan diarahkan ke halaman berikut:
Di sini, klik Log Dalam tombol. Anda akan melihat halaman berikut:
Berikan username dan password akun administrator default sebagai admin/admin dan klik Log Dalam tombol. Anda akan melihat dasbor default SonarQube di halaman berikut:
Selamat! Anda telah berhasil menginstal SonarQube di server Ubuntu 18.04. Sekarang Anda dapat dengan mudah melakukan peninjauan otomatis dan memeriksa kesehatan aplikasi menggunakan SonarQube.
Cara Menginstal ProcessWire CMS di Ubuntu 18.04 LTS Cara Menginstal CMS Typesetter di Ubuntu 18.04 LTSUbuntu