GNU/Linux >> Belajar Linux >  >> Ubuntu

Cara Menginstal SonarQube di Ubuntu 18.04 LTS

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 -Xmx512m 

Simpan 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.service

Tambahkan 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.target

Simpan 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 sonar

Anda dapat memeriksa status layanan SonarQube dengan perintah berikut:

sudo systemctl status sonar

Keluaran:

? 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 -y

Selanjutnya, aktifkan modul mod_proxy dengan perintah berikut:

sudo a2enmod proxy
sudo a2enmod proxy_http

Selanjutnya, buat file virtual host Apache untuk SonarQube dengan perintah berikut:

sudo nano /etc/apache2/sites-available/sonar.conf

Tambahkan 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 sonar

Terakhir, restart layanan Apache dan SonarQube untuk menerapkan semua perubahan dengan perintah berikut:

sudo systemctl restart apache2
sudo systemctl restart sonar

Secara 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.log

Keluaran:

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-process420500314195865484properti

Anda juga dapat memeriksa log web SonarQube menggunakan perintah berikut:

sudo tail -f /opt/sonarqube/logs/web.log

Keluaran:

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.


Ubuntu
  1. Cara Menginstal Magnolia CMS di Ubuntu 18.04 LTS

  2. Cara Menginstal CMS Alfresco di Ubuntu 18.04 LTS

  3. Cara menginstal Server Minecraft di Ubuntu 20.04 LTS

  1. Cara Menginstal LimeSurvey di Ubuntu 18.04 LTS

  2. Cara Menginstal CS-Cart di Ubuntu 18.04 LTS

  3. Cara Menginstal DokuWiki di Ubuntu 18.04 LTS

  1. Cara Menginstal FlintCMS di Ubuntu 18.04 LTS

  2. Cara Menginstal Kooboo CMS di Ubuntu 18.04 LTS

  3. Cara Menginstal Kooboo CMS di Ubuntu 20.04 LTS