Instal Gitlab dengan Sertifikat SSL/TLS di Ubuntu 20.04

Dalam tutorial ini, Anda akan belajar cara menginstal Gitlab dengan sertifikat SSL/TLS di Ubuntu 20.04. GitLab adalah platform pengembangan perangkat lunak end-to-end open source dengan kontrol versi built-in, pelacakan masalah, tinjauan kode, CI/CD, dll. Ini adalah platform DevOps lengkap, dikirimkan sebagai aplikasi tunggal.

Baca lebih lanjut tentang apa yang ditawarkan Gitlab di halaman Fitur Gitlab.

Ingin menggunakan Debian 11 sebagai gantinya? Periksa tautan di bawah ini;

Instal Gitlab CE di Debian 11

Instal Gitlab dengan Sertifikat SSL/TLS di Ubuntu 20.04

Persyaratan Instalasi Gitlab di Ubuntu 20.04

Di bawah ini adalah persyaratan minimum untuk menginstal Gitlab dengan sertifikat SSL/TLS di Ubuntu 20.04.

Persyaratan Perangkat Keras

Pastikan sistem yang ingin Anda host dengan Gitlab telah memenuhi persyaratan perangkat keras minimum berikut;

  • Storage: Penyimpanan yang cukup tergantung pada ukuran repositori yang ingin Anda simpan di GitLab.
  • CPU: Setidaknya 4 core. (mendukung hingga 500 user).
  • Memory: Setidaknya 4GB RAM (mendukung hingga 500 user).
  • Swap: Setidaknya 2GB memori swap.

Persyaratan Perangkat Lunak

  • GitLab membutuhkan Ruby (MRI) 2.6.
  • Versi Go minimum yang diperlukan adalah 1.13.
  • Diperlukan Node.js 10.13.0 atau lebih tinggi. Node 12.x direkomendasikan.
  • GitLab 13.0 dan yang lebih baru membutuhkan Redis versi 4.0 atau lebih tinggi.

Persyaratan Basis Data

Gitlab hanya mendukung database PostgreSQL. Dengan tabel berikut yang menguraikan versi database PostgreSQL yang diperlukan untuk versi Gitlab tertentu;

Versi GitLabVersi PostgreSQL minimum
10.0 9.6
13.0 11
13.6 12

Baca lebih lanjut tentang persyaratan menginstal Gitlab di halaman Persyaratan.

Instal Gitlab dengan Sertifikat SSL/TLS di Ubuntu 20.04

Jalankan Pembaruan Sistem

Jalankan pembaruan sistem;

apt update

Instal dependensi paket yang diperlukan

Jalankan perintah di bawah ini untuk menginstal beberapa dependensi paket yang diperlukan.

apt install curl tzdata ca-certificates openssh-server

Instal Gitlab di Ubuntu 20.04

Dalam tutorial ini, kita menginstal Gitlab Community Edition, CE. Oleh karena itu, Anda dapat menginstalnya menggunakan paket biner DEB siap pakai atau langsung dari repositori Gitlab;

Untuk menginstal Gitlab CE di Ubuntu 20.04, Anda perlu menginstal repo Gitlab CE dengan menjalankan perintah di bawah ini;

curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash

Setelah repo paket Gitlab selesai, instal Gitlab di Ubuntu 20.04;

apt install gitlab-ce
... Preparing to unpack.../gitlab-ce_13.5.4-ce.0_amd64.deb... Unpacking gitlab-ce (13.5.4-ce.0)... Setting up gitlab-ce (13.5.4-ce.0)... It looks like GitLab has not been configured yet; skipping the upgrade script. *. *. *** *** ***** *****.****** ******* ******** ********,,,,,,,,,***********,,,,,,,,,,,,,,,,,,,,*********,,,,,,,,,,,.,,,,,,,,,,,*******,,,,,,,,,,,,,,,,,,,,,*****,,,,,,,,,.,,,,,,,****,,,,,,.,,,***,,,,,*,. _______ __ __ __ / ____(_) /_/ / ____ _/ /_ / / __/ / __/ / / __ `/ __  / /_/ / / /_/ /___/ /_/ / /_/ / ____/_/__/_____/__,_/_.___/ Thank you for installing GitLab! GitLab was unable to detect a valid hostname for your instance. Please configure a URL for your GitLab instance by setting `external_url` configuration in /etc/gitlab/gitlab.rb file. Then, you can start your GitLab instance by running the following command: sudo gitlab-ctl reconfigure For a comprehensive list of configuration options please see the Omnibus GitLab readme https://gitlab.com/gitlab-org/omnibus-gitlab/blob/master/README.md 

Untuk menginstal Gitlab menggunakan paket biner DEB, download biner dari halaman paket Gitlab dan instal secara manual menggunakan aptatau dpkgperintah;

wget -O gitlab-ce_13.5.4-ce.0_arm64.deb https://packages.gitlab.com/gitlab/gitlab-ce/packages/ubuntu/focal/gitlab-ce_13.5.4-ce.0_arm64.deb/download.deb

apt install./gitlab-ce_13.5.4-ce.0_arm64.deb

Konfigurasikan Gitlab dengan Sertifikat SSL/TLS di Ubuntu 20.04

Setelah paket Gitlab CE diinstal, Anda dapat menginstal sertifikat SSL/TLS. Ada dua cara untuk mengonfigurasi Gitlab dengan sertifikat SSL/TLS;

  1. Menggunakan HTTPS gratis dan otomatis dengan Let’s Encrypt
  2. Mengonfigurasi HTTPS secara manual dengan sertifikat Anda sendiri

Dalam demo ini, kita akan mengatur Gitlab secara manual dengan sertifikat SSL menggunakan sertifikat yang ditandatangani sendiri. Jika Anda akan mengekspos server gitlab Anda ke internet publik, Anda dapat mempertimbangkan untuk menggunakan sertifikat TLS komersial.

Buat direktori untuk menyimpan sertifikat SSL;

mkdir /etc/gitlab/ssl

Selanjutnya, buat sertifikat SSL yang ditandatangani sendiri dengan menjalankan perintah di bawah ini. Pastikan untuk mengganti detail sertifikat sesuai dengan perintah di bawah ini;

openssl req -newkey rsa:4096 -x509 -sha512 -days 3650 -nodes -out /etc/gitlab/ssl/kifarunix-demo.crt -keyout /etc/gitlab/ssl/kifarunix-demo.key -subj "/C=US/ST=California/L=San Francisco/O=Kifarunix-demo Ltd/CN=*.kifarunix-demo.com/"

Copy file sertifikat publik hanya ke dalam  /etc/gitlab/trusted-certs direktori.

mkdir /etc/gitlab/trusted-certs
cp /etc/gitlab/ssl/kifarunix-demo.crt /etc/gitlab/trusted-certs/

Ingin menggunakan Let’s Encrypt sebagai gantinya? Periksa tautan ini.

Konfigurasikan URL untuk GitLab Server di Ubuntu 20.04

Setelah sertifikat dibuat, edit file /etc/gitlab/gitlab.rb file konfigurasi dan ganti nilai external_urlke URL server Gitlab CE Anda untuk mengaktifkan HTTPS untuk domain. Ganti nama domain dengan tepat.

vim /etc/gitlab/gitlab.rb
... ## GitLab URL ##! URL on which GitLab will be reachable. ##! For more details on configuring external_url see: ##! https://docs.gitlab.com/omnibus/settings/configuration.html#configuring-the-external-url-for-gitlab ##! ##! Note: During installation/upgrades, the value of the environment variable ##! EXTERNAL_URL will be used to populate/replace this value. ##! On AWS EC2 instances, we also attempt to fetch the public hostname/IP ##! address from AWS. For more details, see: ##! https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instancedata-data-retrieval.html #external_url 'http://gitlab.example.com' external_url 'https://gitlab.kifarunix-demo.com' 

Aktifkan Pengaturan SSL Gitlab

Selanjutnya, gulir ke bawah ke bagian Gitlab NGINX dan buat penyesuaian berikut (sesuai pengaturan Anda).

################################################################################ ## GitLab NGINX ##! Docs: https://docs.gitlab.com/omnibus/settings/nginx.html ################################################################################ nginx['enable'] = true nginx['client_max_body_size'] = '250m' nginx['redirect_http_to_https'] = true...... nginx['ssl_certificate'] = "/etc/gitlab/ssl/kifarunix-demo.crt" nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/kifarunix-demo.key"...... nginx['ssl_protocols'] = "TLSv1.2 TLSv1.3" 

Ada cukup banyak opsi opsi konfigurasi. Buka konfigurasi dan aktifkan ssl untuk service lain yang Anda butuhkan.

Simpan dan keluar dari file konfigurasi setelah Anda selesai dengan konfigurasi.

Konfigurasi ulang Omnibus GitLab

Setelah penyiapan selesai, konfigurasikan ulang Omnibus Gitlab. Konfigurasi ulang diperlukan setiap kali ada perubahan konfigurasi.

gitlab-ctl reconfigure

Periksa status service Gitlab;

gitlab-ctl status
run: alertmanager: (pid 16779) 225s; run: log: (pid 16373) 290s run: gitaly: (pid 16662) 227s; run: log: (pid 15291) 727s run: gitlab-exporter: (pid 16661) 227s; run: log: (pid 16274) 306s run: gitlab-workhorse: (pid 16637) 228s; run: log: (pid 15974) 328s run: grafana: (pid 16856) 207s; run: log: (pid 16564) 247s run: logrotate: (pid 16033) 321s; run: log: (pid 16041) 319s run: nginx: (pid 17480) 1s; run: log: (pid 16013) 326s run: node-exporter: (pid 16652) 227s; run: log: (pid 16167) 312s run: postgres-exporter: (pid 16791) 225s; run: log: (pid 16406) 283s run: postgresql: (pid 15460) 688s; run: log: (pid 15473) 686s run: prometheus: (pid 16763) 226s; run: log: (pid 16343) 293s run: puma: (pid 15875) 345s; run: log: (pid 15882) 343s run: redis: (pid 15240) 735s; run: log: (pid 15258) 733s run: redis-exporter: (pid 16680) 227s; run: log: (pid 16309) 300s run: sidekiq: (pid 15891) 339s; run: log: (pid 15912) 336s 

Jika Anda perlu restart semua service Gitlab;

gitlab-ctl restart

Anda juga dapat menggunakan start|stopopsi perintah untuk mengontrol service Gitlab.

Untuk memulai, menghentikan atau restart komponen individual, misalnya nginx;

gitlab-ctl start|stop|restart nginx

Mengakses Interface Web Gitlab

Instalasi dasar Gitlab dengan Sertifikat SSL/TLS di Ubuntu 20.04 sekarang telah selesai. Yang dapat Anda lakukan sekarang adalah mengakses interface web Gitlab.

Jika UFW sedang berjalan, Anda perlu membuka port 443/80 untuk mengizinkan akses eksternal.

ufw allow "Apache Full"

Untuk mengizinkan dari IP tertentu;

ufw allow from 192.168.57.1 to any port 80 proto tcp ufw allow from 192.168.57.1 to any port 443 proto tcp

Setelah mengakses interface web, Anda akan diminta untuk menyetel password user root Anda yang baru.

Masuk ke interface user web Gitlab sebagai user root dengan password yang ditetapkan di atas. Anda juga dapat mendaftarkan akun Anda sendiri dan melanjutkan untuk masuk ke dasbor web Gitlab.

Dasbor web Gitlab untuk root user;

Gitlab sekarang diinstal dan diatur, pada dasarnya. Itu menandai akhir dari tutorial kami tentang cara menginstal Gitlab dengan sertifikat SSL/TLS di Ubuntu 20.04.

Referensi

Download dan instal Gitlab di Ubuntu

Bacaan lebih lanjut

Dokumentasi Gitlab

Tutorial lainnya

Instal Apache Solr terbaru di CentOS 8

Instal Apache Solr terbaru di Ubuntu 20.04

Visualisasikan Log Aktivitas Pengguna WordPress di ELK Stack

Cara Cepat untuk Menginstal dan Mengkonfigurasi SNMP di Ubuntu 20.04

Instal dan Setup Cacti dengan Mudah di Ubuntu 20.04