GNU/Linux >> Belajar Linux >  >> Linux

Menyiapkan Integrasi Berkelanjutan Dengan GitLab, Jenkins, dan SonarQube

Tutorial ini adalah tentang integrasi berkelanjutan antara GitLab, Jenkins dan SonarQube. Di akhir tutorial ini, Anda akan dapat melihat laporan kualitas kode repositori GitLab di SonarQube dengan menggunakan Jenkins sebagai Continuous Integrator dan sonar-scanner sebagai penganalisis kode.

Pengaturan Integrasi Berkelanjutan dengan GitLab, Jenkins, dan SonarQube

Sebelum kita melihat cara menyiapkan continuous integration (CI), pertama-tama mari kita lihat komponen yang terlibat dan peran apa yang dimainkannya dalam penyiapan kita di sini.

GitLab

GitLab adalah platform hosting kode sumber terbuka untuk kolaborasi dan kontrol versi. Itu dapat diinstal di server Anda untuk meng-host kode Anda secara pribadi. GitLab menyediakan fungsionalitas Source Code Management (SCM) yang mirip dengan GitHub dan BitBucket.

Jenkins

Jenkins adalah server Continuous Integration open-source. Ini adalah alat otomatisasi yang dapat digunakan untuk menguji dan mengompilasi kode Anda, dan menerapkannya ke produksi jika pembangunan berhasil.

Jenkins di sini digunakan untuk menarik kode dari GitLab (secara real time, ketika kode didorong atau digabungkan), membangun kode proyek dan mendorong hasilnya ke SonarQube untuk interpretasi visual.

SonarQube

SonarQube adalah server Inspeksi Berkelanjutan sumber terbuka. Ini adalah alat yang digunakan sebagai gerbang kualitas untuk tinjauan kode. Ini memberikan laporan otomatis analisis kode, mendeteksi bug, kerentanan keamanan, kode duplikat, komentar, bau kode, dan banyak lagi untuk berbagai bahasa pemrograman.

Prasyarat

Tutorial ini mengasumsikan bahwa GitLab, Jenkins dan SonarQube telah diinstal pada sistem Linux Anda. Pemasangan alat ini bukan fokus kami di sini.

Sekarang setelah Anda mengetahui alat yang terlibat dan perannya, mari kita lihat cara menyiapkan integrasi berkelanjutan

Langkah 1. Konfigurasi di Sonarqube

Kami memerlukan token autentikasi server dari SonarQube, yang kemudian kami berikan ke Jenkins. Token ini memberikan akses ke Jenkins, untuk mendorong build Jenkins di SonarQube untuk analisis kode.

  • Buka Akun Saya> Keamanan
  • Di Token blokir, masukkan teks apa saja untuk membuat token.
  • Simpan salinan token

Berikut ulasan SonarQube yang menghasilkan token pengguna:

Sekarang, kita akan membuat Proyek di mana semua laporan analisis kode dipublikasikan.

  • Buka Administrasi> Proyek> Manajemen
  • Klik Buat Proyek
  • Buat proyek dengan Project_name dan Project_key Anda. Salin nama dan kunci proyek. Kami akan meneruskan kredensial ini di konfigurasi Jenkins nanti.

Pratinjau pembuatan proyek:

Langkah 2. Konfigurasi di GitLab

Kami juga membutuhkan Token Akses pengguna GitLab yang nantinya kami berikan di Jenkins. Ini digunakan untuk mengautentikasi url repositori pengguna GitLab, dari mana Jenkins menarik kodenya.

  • Buka Setelan Pengguna dari menu Pengaturan.
  • Buka Token Akses
  • Buat token akses pribadi dengan menambahkan nama unik apa pun(Nama ) dan tanggal kedaluwarsa token (Kedaluwarsa pada ). Setel juga Cakupan ke api- Akses penuh.

Pratinjau pembuatan Token Akses Pengguna:

Langkah 3. Konfigurasi di Jenkins

Kita perlu mengkonfigurasi GitLab dan SonarQube di panel web Jenkins. Untuk ini, kita perlu menginstal beberapa plugin yang diperlukan.

  • Masuk ke Jenkins
  • Buka Kelola Jenkins> Kelola Plugin
  • Di Tersedia tab, cari GitLab dan SonarQube dan instal plugin berikut:
  • Plugin Pengait GitLab
  • Plugin GitLab
  • Git
  • Pemindai SonarQube untuk Jenkins

Kami membutuhkan Pemindai SonarQube untuk dipasang di “server Jenkins” yang sebenarnya memulai analisis kode dan mempublikasikan laporan ke proyek di SonarQube.

Untuk menginstal SonarQube Scanner, Anda dapat menggunakan perintah berikut:

$ wget https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-3.3.0.1492-linux.zip
$ unzip sonar-scanner-cli-3.3.0.1492-linux.zip 
$ cd sonar-scanner-3.3.0.1492-linux $ pwd 

Salin lokasi. Kita perlu menambahkan lokasi ini (sebagai Folder Beranda Instalasi Pemindai SonarQube) di Konfigurasi Jenkins.

Kami juga akan mengonfigurasi file properti sonar-scanner di server add SonarQube:

$ cd conf 
$ vi sonar-scanner.properties

Batalkan komentar “sonar.host.url” dan tambahkan URL server SonarQube Anda

Sekarang kita akan mengkonfigurasi GitLab dan SonarQube di Jenkins.

  • Buka Kelola Jenkins> Konfigurasikan Sistem
  • Di server SonarQube tab, masukkan URL server SonarQube Anda dan token otentikasi Server dihasilkan di SonarQube sebelumnya.

Pratinjau penambahan SonarQube di Jenkins:

Sekarang, buka tab GitLab dan tambahkan URL Server GitLab Anda di URL host GitLab

Di Kredensial , kita membutuhkan token API GitLab untuk mengakses GitLab. Klik Tambah dan pilih Jenkins: Penyedia Kredensial Jenkins

Di Baik , pilih Token API GitLab dari daftar drop-down. Masukkan Token API Anda yang dibuat di GitLab sebelumnya. Tambahkan Token dengan ID unik.

Juga, Pastikan Anda memiliki Lokasi Jenkins yang benar di Lokasi Jenkins tab.

Setelah berhasil menambahkan GitLab dan SonarQube, kita juga perlu menambahkan konfigurasi SonarQube Scanner.

  • Buka Kelola Jenkins> Konfigurasi Alat Global
  • Di SonarQube Scanner tab, klik Instalasi Pemindai SonarQube
  • Hapus centang Instal secara otomatis , dan tambahkan Folder Beranda Instalasi SonarQube Anda.

Langkah 4:Menambahkan proyek ke Jenkins untuk integrasi berkelanjutan dan inspeksi berkelanjutan

Setelah semua konfigurasi selesai, sekarang kita akan membuat Proyek di Jenkins.

Buka Dasbor Jenkins -> Item Baru> Pilih Proyek Gaya Bebas . Buat proyek dengan nama proyek yang unik

Di Dasbor Jenkins, Pilih Proyek Anda dan Klik Konfigurasi .

Gulir ke Umum tab, Pilih Koneksi GitLab dari daftar drop-down. Anda akan melihat nama koneksi GitLab yang telah kami tambahkan sebelumnya, di Manage Jenkins> Konfigurasikan Sistem .

Gulir ke Pengelolaan Kode Sumber tab, pilih Git . Tambahkan URL http proyek GitLab Anda (Ini menggunakan sintaks yang sama dengan perintah git clone). Anda bisa mendapatkan URL di Halaman Proyek GitLab Anda.

Tentukan juga autentikasi untuk URL GitLab.

  • Di Kredensial , klik Tambah dan pilih Jenkins: Penyedia Kredensial Jenkins
  • di Baik , pilih Nama pengguna dengan sandi dari daftar tarik-turun.
  • Masukkan nama pengguna dan sandi login GitLab Anda.
  • Tambahkan kunci dengan ID unik.

Anda juga perlu menentukan cabang yang akan dibangun. Jika dibiarkan kosong, semua cabang akan diperiksa untuk perubahan dan dibangun.

Menambahkan cabang dapat dilakukan seperti:*/

Sekarang, gulir ke Build Triggers , pilih kotak centang URL webhook GitLab.

  • Salin URL webhook GitLab. Kita perlu menyiapkan webhook di GitLab lagi, menggunakan url ini.
  • Klik Lanjutan
  • Buat sebagai Token Rahasia . Salin token ini, ini digunakan untuk menyetel webhook di GitLab nanti.

Pratinjau pembuatan Pemicu Build

Terakhir, gulir ke Build tab, di Jalankan SonarQube Scanner , tambahkan parameter konfigurasi SonarQube yang digunakan oleh pemindai SonarQube. Ini mungkin termasuk SonarQube ProjectName, ProjectKey, lokasi pemasangan SonarQube Scanner, dll.

Setelah semua konfigurasi selesai, terakhir kita perlu mengatur webhook di GitLab.

Webhook adalah metode untuk mendorong data ke aplikasi lain secara real-time.
Kami menggunakan webhook di GitLab untuk mengotomatiskan pengiriman kode GitLab selama peristiwa push atau menggabungkan peristiwa, seperti yang ditentukan.

  • Masuk ke Akun Gilab Anda.
  • buka Proyek Anda di Proyek menu.
  • Pilih Proyek Anda
  • buka Setelan> Integrasi
  • Tambahkan URL webhook dan Token Rahasia yang kami salin dari tab Pemicu Pembangunan Jenkins.
  • Pilih pemicu yang Anda inginkan, dan batalkan pilihan Verifikasi SSL .
  • Buat webhook

Pratinjau pembuatan webhook GitLab:

Uji webhook dengan Acara push .

Setelah pengujian berhasil, Proyek mulai membangun di Jenkins. Masuk ke Jenkins dan verifikasi pembangunan Proyek. Anda dapat melihat kode GitLab di Jenkins Workspaces .

Anda juga dapat melihat laporan kode proyek di SonarQube.

Itu dia! Kami telah berhasil mengintegrasikan GitLab, Jenkins dan SonarQube. Sekarang untuk setiap peristiwa push atau menggabungkan peristiwa ke repositori GitLab kami, Jenkins akan membangun proyek dan menunjukkan kualitas kode di SonarQube.

Saya harap tutorial ini mudah untuk Anda ikuti. Beri tahu saya jika Anda memiliki pertanyaan atau saran.

Penulis :Rishi Raj Gautam adalah pecinta Linux dan aktivis open-source.


Linux
  1. Cara mengintegrasikan Jenkins dengan CloudFormation dan Step Functions

  2. Pangkas Dengan Lvm Dan Dm-crypt?

  3. Menyiapkan subdomain dengan Apache di Linux

  1. Cara mengatur Gitlab untuk Integrasi dan Penerapan Berkelanjutan di CentOS

  2. Kelelawar – Klon Kucing Dengan Penyorotan Sintaks Dan Integrasi Git

  3. Instal dan Jalankan Jenkins dengan Systemd dan Docker

  1. Menginstal dan mengonfigurasi Jenkins di Linux

  2. Menyiapkan server Kebingungan dengan Obfsproxy dan Viskositas

  3. Menyiapkan server OpenVPN dengan CentOS dan Viscosity