Memulai dengan GitLab: Panduan Lengkap dari Instalasi hingga Pipeline
Dalam dunia pengembangan perangkat lunak modern, manajemen versi dan integrasi kontinu (CI) menjadi sangat penting. GitLab adalah salah satu alat yang sangat populer untuk mencapai kedua tujuan tersebut, menawarkan solusi terintegrasi yang mencakup kontrol versi, manajemen proyek, dan CI/CD. Artikel ini akan memandu Anda melalui langkah-langkah dasar untuk memahami dan menggunakan GitLab, mulai dari instalasi hingga pembuatan pipeline CI/CD dengan GitLab CI.
Apa itu GitLab?
GitLab adalah platform DevOps yang menyediakan berbagai alat untuk pengembangan perangkat lunak, termasuk kontrol versi Git, pelacakan masalah, manajemen proyek, dan CI/CD. GitLab memungkinkan tim untuk berkolaborasi secara efisien dengan fitur-fitur seperti repositori kode, merge requests, dan pipeline otomatis untuk build dan deployment.
Fitur Utama GitLab:
- Repository Management: Menyediakan kontrol versi untuk kode sumber menggunakan Git.
- Issue Tracking: Mengelola dan melacak tugas dan bug.
- CI/CD: Mengotomatiskan proses build, testing, dan deployment.
- Project Management: Alat untuk perencanaan, pelacakan, dan kolaborasi.
Instalasi GitLab Self-Managed
Untuk menggunakan GitLab secara mandiri, Anda perlu menginstal GitLab di server Anda sendiri. Dalam panduan ini, kita akan menggunakan Red Hat Enterprise Linux (RHEL) sebagai sistem operasi.
Langkah-langkah Instalasi:
- Update Repository
Pertama kta update terlebih dahulu server kita
‘’’
yum update -y
‘’’’
- Install dan Dependencies yang di perlukan
Setelah kita mengupdate repository kita, selanjutnya kita install dependencies yang diperlukan
‘’’
yum install -y curl policycoreutils-python-utils.noarch openssh-server perl
yum install postfix -y
‘’’
Setelah kita menginstall dependenciesnya kita juga perlu setting firewall ke http dan https
‘’’
firewall-cmd –permanent –add-service=http
firewall-cmd –permanent –add-service=https
firwall-cmd –reload
firwall-cmd –list-all
‘’’
- Menambah repo gitlab dan install gitlab
Setelah kita menambahkan dependencies dan setting firewallnya, selanjutnya kita add repo gitlab lalu install gitlabnya
‘’’
curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | bash
GITLAB_ROOT_EMAIL=”<gitlab_admin@example.com>” GITLAB_ROOT_PASSWORD=”<strongpassword>” EXTERNAL_URL=”http://gitlab.example.com” yum install gitlab-ce
‘’’
gitlab.example.com ganti dengan dns sendiri
Jika sudah kita coba untuk akses gitlab kita melalui web browser, buka web browser lalu klik http://ip_server
Nah, jika sudah sampai sini, artinya gitlab telah berhasil di install di server kita, selanjutnya kita bisa membuat project di gitlab kita.
Membuat Project CI/CD menggunakan GitLab
- Membuat Repository Baru
Pertama kita kllik Project>Create Project
Lalu kita pilih Create Blank Project
Buat nama untuk projectnya, dan arahkan urlnya ke root saja, lalu untuk project slugnya akan mengikuti nama projectnya
Jika sudah berhasil terbuat, maka tampilannya akan seperti ini, selanjutnya kita masukkan project kita ke dalam repository ini.
- Remote Repository Ke Local Directory
Klik VSCode (SSH), otomatis akan masuk visual code studio
Sleanjutnya kita arahkan untuk folder dari gitlab ke local kita
Nah, otomatis akan masuk visual studio code, selanjutnya kita bisa memasukkan project kita ke local directory ini
Selanjutnya kita pindah folder project kita ke dalam directory remote gitlabnya
- Test Code Menggunakan NPM
Jika sudah maka di vscode tampilannya akan seperti ini, kita coba test untuk codenya menggunakanan npm, sebelumnya kita install dulu npm dengan command npm install
Nah, jika npm sudah diinstal selanjutnya kita test menggunakan npm test
Untuk tampilan testnya jika berhasil maka akan seperti dibawah ini
Kita coba juga test coveragenya menggunakan command npm run test:coverage
- Membuat Script Sonar
Selanjutnya kita buat juga sonar propertiesnya untuk kita coba code review
- Buat nama projectkeynya
- Lalu kita buat nama project namenya
- Selanjutnya kita buat juga versi untuk sonar projectnya
- Untuk sonar sources kita gunakan .
- Untuk sonar.exclusions digunakan untuk menghide dari sonarnya, jika dihide maka sonar tidak akan menjangkaunya
- Untuk sonar test: arahkan sonar test ke folder/file yang didalamnya berisi perintah perintah reviewnya
- Lalu kita buat juga untuk coveragenya
- Push Perubahan Ke Gitlab
Jika sudah membuat kita push ke gitlab kita, ketik git add .> git commit -m “pesan commitnya”>git push origin main
Jika code berhasil ditambahkan, maka tampilan digitlab akan seperti ini, selanjutnya kita clone ke server kita,selanjutnya kita akan clone ke server kita
- Clone Repo Ke Server Local
Klik Code>Clone with HTTP>salin
Buka server dan ketik command
‘’’
yum install git
‘’’’
Lalu kita clone repository kita ke server local dengan coammd
‘’’
git clone http://gitlab.rafli.idn/root/floopy.git
‘’’
Lalu kita coba lihat listnya untuk melihat apakah sudah ada foldernya atau belum dengan command ls
- Install Sonar Scanner
Sebelum kita review code kita dengan sonar scanner, kita install dulu dengan buka link, lalu salin linkynya
Pastekan dan install link tadi di server kita dengan command
‘’’
Unzip sonar-scanner-cli-6.1.0.4477-linux-x64.zip
‘’’
‘’’
groupadd sonar
useradd -s /bin/bash -d /opt/sonar-scanner -g sonar sonar
mv -v sonar-scannner-6.1.0.4477-linux-x64 /opt/sonar-scanner
chown -R sonar:sonar /opt/sonar-scanner
ln -s /opt/sonar-scanner/bin/sonar-scanner /usr/bin
‘’’
- Create Sonar Project
Buka sonar servernya, lalu buat project kita dengan klik manually
Lalu buat nama project kita sesuai dengan project key yang kita buat di sonar-project.properties
Lalu klik locally untuk membuat token sonar kita
Buat nama untuk tokenamenya, klik saja generate>continue
Selanjutnya klik other>linux>copy untuk execute the scanner
- Review Code Dengan Sonar
Lalu kita masuk ke server kita dan masuk ke folder floppy kita, sebelum kita review code kita, install npm terlebih dahulu
Masuk dengan ls>cd floopy>tempel command sonar yang kita salin sebelumnya di sonar server kita. Tunggu sampai proses scanning selesai lalu kita buka web browser kita
Ketik http://ip_server:9000 lalu masuk ke dashboard. Jika tampilannya merah seperti dibawah, artinya code yang kita buat belum sepenuhnya clean code dan masih ada security hotspots, sebaiknya kita perbaiki dulu untuk security hotspotnya
Jika sudah diperbaiki, lalu scan ulang codenya jika sudah hijau seperti dibawah ini, artinya code sudah clean dan aman untuk kita deploy ke production
- Membuat Image dan Running Container
Sebelum kita deploy ke production, kita buat terlebih dahulu untuk imagenya, buka server local>folder floopy>dockerfile. Buat codenya seperti dibawah ini, kita menggunakan node12 dengan exposenya 40000
Jika sudah kita buat di dockerfile, lalu kita build dockerfilenya dan run imagenya dengan command
‘’’
docker build -t tugasa(nama_imagenya) .
docker run -d –name myweb -p 3000:3000 tugas
docker ps
‘’’
Jika docker sudah berjalan, maka kita bisa cek web kita di browser kita
Ketik http://ip_server:3000
- Membuat Script CI/CD
Jika sudah bisa berjalan secara normal, selanjutnya kita buat untuk script ci/cdnya. Buka server kita dan masuk ke folder floopy
‘’’
vim .gitlab-ci.yml
‘’’
Buat untuk script seperti dibawah ini, kita buat untuk 4 tahap yaitu build>test>code review>deploy
Jika sudah kita buat kita push ke gitlab kita dengan command
‘’’
git add .
git commit -m “add new”
git push
‘’’
Masukkan credential gitlabnya, untuk username dan token gitlab kita
Jika perubahan berhasil terupdate, maka untuk tampilan gitlab akan menambahkan file perubahannya.
- Membuat Variables
Jika sudah kita buat variablesnya untuk login ke docker, klik settings>CI/CD>Variables>Collapse>Add variable
Kita buat untuk unceklis protect>Key>value>add variable
Untuk keynya kita buat variable USERD dan untuk valuenya kita masukkan username docker kita
Jika sudah membuat untuk variable usernamenya, selanjutnya kita buat variable untuk password dockernya,dengan variablenya PASSD dan untuk valuenya password dockernya, jika sudah klik add variable
- Membuat Runners
Jika variable sudah dibuat, selanjutnya kita buat juga untuk runnernya, masuk ke Runners>New project Runner
Lalu kita buat tagsya sesuai dengan gitlab ci/cdnya yaitu project, jika sudah klik create runners
Pilih untuk Linux>How do i install gitlab runners>salin. Salin instruksi instalasinya untuk server production kita
Masukkan satu persatu untuk commandnya di server production kita, lalu start gitlab runnernya
Jika sudah menginstall gitlab runnernya, kita register gitlab runnernya ke server production kita untuk tempat deploynya. Salin untuk step per stepnya dan tempel ke server kita, untuk executornya kita pilih shell, jika sudah klik View runners
Jika runners berhasil terbuat maka statusnya akan hijau untuk menandakan bahwa runnersnya active, jika sudah active saatnya kita run script ci/cd nya
- Running Script CI/CD
Ketika runner kita run, maka otomatis script kita akan berjalan, untuk melihat progressnya kita klik Build>Jobs. Jika prosesnya masih ada yang failed seperti dibawah ini, maka kita harus solve terlebih dahulu untuk masalahnya
Jika prosess sudah berhasil, maka tampilannya akan passed semua seperti dibawah ini
- Uji Website
Jika sudah passed, kita cek containernya di server productionnya, jika sudah running maka akan seperti dibawah, selanjutnya kita cek di browser apakah web kita sudah berjalan dengan sempurna
Buka browsernya dan ketik http://ip_server:3000. Jika web sudah berjalan dengan sempurna maka web akan bisa diakses seperti dibawah ini
Tertarik mengikuti training di ID-Networkers? Kami menyediakan berbagai pilihan training yang bisa kamu ikuti, klik disini untuk info lengkapnya
Penulis : Rafly Abdul Bay Haqqi