GitforDeploy
Sebelum melakukan deployment project ke Ubuntu Server, langkah pertama yang perlu dilakukan adalah menyiapkan beberapa Virtual Machine (VM). Berikut adalah daftar VM yang harus diinstal:
1. Menginstal Virtual Machine
Kalian dapat menggunakan Virtual Machine seperti VirtualBox atau VMware untuk mengelola berbagai VM yang dibutuhkan. Software ini dapat diunduh langsung dari situs resmi masing-masing platform:
VirtualBox: https://www.virtualbox.org/
VMware: https://www.vmware.com/
Setelah menginstal salah satu dari software tersebut, Kalian dapat mulai membuat VM untuk kebutuhan deployment.
2. Menginstal Kali Linux
Dalam persiapan ini, Kalian perlu menginstal dua VM dengan Kali Linux, masing-masing memiliki peran yang berbeda:
a. Kali Linux untuk GitLab
VM pertama dengan Kali Linux digunakan untuk menginstal dan menjalankan GitLab, yang berfungsi sebagai repository manajemen kode sumber dan CI/CD pipeline.
b. Kali Linux untuk Jenkins
VM kedua dengan Kali Linux digunakan untuk menginstal Jenkins, sebuah automation server yang membantu dalam proses deployment aplikasi ke server.
3. Menginstal Ubuntu Server
VM terakhir yang perlu diinstal adalah Ubuntu Server, yang akan digunakan sebagai target utama deployment project. Pastikan server ini sudah siap untuk menerima deployment dari Jenkins dan dapat diakses melalui jaringan lokal.
4. Menginstal GitLab di Kali Linux (Debian Based)
GitLab adalah platform DevOps lengkap untuk repositori Git dan CI/CD pipeline. Berikut adalah langkah-langkah instalasi GitLab di Kali Linux:
a. Update Sistem
Jalankan perintah berikut untuk memastikan sistem Kalian dalam kondisi terbaru:
sudo apt update && sudo apt upgrade -yb. Instal Dependensi yang Dibutuhkan
GitLab memerlukan beberapa paket dependensi untuk berjalan dengan baik:
sudo apt install -y curl openssh-server ca-certificates tzdata perlc. Tambahkan Repository GitLab
Jalankan perintah berikut untuk menambahkan repository resmi GitLab:
curl -fsSL https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bashd. Instal GitLab Community Edition
Gunakan perintah berikut untuk menginstal GitLab:
sudo apt install gitlab-ce -ye. Konfigurasi GitLab
Buka file konfigurasi utama GitLab dengan editor teks:
sudo nano /etc/gitlab/gitlab.rbCari baris berikut:
gitlab_rails['external_url'] = 'http://<IP-Server>'Ganti dengan domain yang diinginkan, misalnya:
gitlab_rails['external_url'] = 'http://<IP-COMPUTER>:<PORT>'Simpan file dengan CTRL + X, lalu tekan Y dan Enter.
Setelah instalasi selesai, konfigurasikan GitLab dengan perintah:
sudo gitlab-ctl reconfigureTunggu hingga proses konfigurasi selesai.
f. Akses GitLab
Buka browser dan akses GitLab melalui alamat:
http://<IP-Server>:<PORT>Gantilah <IP-Server> dengan alamat IP VM Kali Linux Anda.
Login pertama kali menggunakan username root dan password yang dapat ditemukan dengan perintah:
5. Menginstal Docker di Kali Linux
Sebelum menginstal Jenkins, kita perlu menginstal Docker terlebih dahulu agar Jenkins dapat berjalan dalam container. Berikut langkah-langkah instalasi Docker di Kali Linux menggunakan paket docker.io dari repository resmi Debian:
a. Update Sistem
sudo apt update && sudo apt upgrade -yb. Instal Docker
sudo apt install -y docker.ioc. Tambahkan Pengguna ke Grup Docker
sudo usermod -aG docker $USERKeluar dan masuk kembali ke sesi terminal agar perubahan grup diterapkan.
d. Verifikasi Instalasi
docker --versionJika Docker berhasil diinstal, Kalian akan melihat versi Docker yang terpasang.
6. Menginstal Jenkins dengan Docker di Kali Linux
Setelah Docker terpasang, kita dapat menjalankan Jenkins dalam container. Berikut langkah-langkahnya:
a. Tarik Image Jenkins dari Docker Hub
sudo docker pull jenkins/jenkins:ltsb. Jalankan Container Jenkins
sudo docker run -d --name jenkins -p 8080:8080 -p 50000:50000 -v jenkins_home:/var/jenkins_home jenkins/jenkins:ltsc. Akses Jenkins
Buka browser dan akses Jenkins melalui alamat:
http://<IP-Server>:8080Gantilah <IP-Server> dengan alamat IP VM Kali Linux kalian.
Untuk mendapatkan password awal Jenkins, jalankan perintah berikut:
sudo docker exec -it jenkins cat /var/jenkins_home/secrets/initialAdminPasswordGunakan password ini untuk login pertama kali dan selesaikan setup awal Jenkins.
Setelah Jenkins berhasil diinstal menggunakan Docker, langkah berikutnya adalah mengintegrasikannya dengan GitLab dan Ubuntu Server agar pipeline deployment berjalan otomatis. Nantikan pembahasan selanjutnya!
Proses Deployment
- Buatlah folder atau direktori didalam vm kali linux yang kalian gunakan untuk menginstal Gitlab dengan menggunakan perintah sudo mkdir <direktori>
- Setelah itu masuk kedalam direktori yang sudah dibuat dan lakukan clone repository sebagai contoh project yang akan dideploy menggunakan perintah sudo git clone <repository>
- kemudian lakukan konfigurasi git agar kalian dapat melakukan remote ke repository anda tapi sebelumnya anda harus membuat repository di gitlab yang sudah anda install sebelumnya.
- akses gitlab kalian dengan alamat ip atau domain yang sudah anda set
- Jika sudah kita bisa kembali ke terminal di kali linux untuk melakukan konfigurasi git
- Nah tadi kan kita sudah melakukan cloning repository sebelumnya milik indrasatya pada repo aplikasi-antrian-berbasis-web. pada set default-nya setiap repository yang di cloning sudah terdapat remote user yang memiliki repo tersebut. disini kita akan menghapus remote dari user sebelumnya dengan perintah git remote remove origin
- dan gunakan perintah git remote add origin <repository milik kita yang sudah dibuat> untuk menambahkan remote user kalian, remote user ini merupakan remote user yang kalian gunakan untuk membuat repository gitlab kalian
- jika berhasil lakukan push repository. tujuannya untuk meng-upload repository yang dicloning kedalam repository yang sudah kita buat. misal terdapat eror seperti ini saat push coba periksa branch mana yang sedang digunakan terlebih dahulu, dengan perintah git branch dari situ terlihat bahwa kita sedang berada pada branch master yang mana itu yang menyebabkan error karena kita ingin melakukan push dengan branch main, jadi kita bisa berpindah branch terlebih dahulu atau jika kalian ingin menguploadnya pada branch master juga tidak masalah nanti tinggal di merge. untuk berpindah branch kita bisa menggunakan perintah git branch -M <branch_yang_dituju>
- buat repository atau project di jenkins tapi sebelum itu lebih baik untuk menginstal plugin yang dibutuhkan seperti plugin gitlab dan juga ssh agent, mungkin bisa ditambah plugin pipeline stage view untuk melihat progres deployment saat berjalan.
- pada konfigurasi pipeline kita bisa gunakan pipeline sederhana dulu sebagai testing
- jika kedua platform sudah dikonfigurasi masing-masing, kita tinggal integrasikan keduanya agar saling terhubung
- sekarang kembali ke repository gitlab dan pergi ke setting, disitu ada menu webhook. masuk ke webhook
dan lakukan konfigurasi seperti ini. dan centang bagian yang dibutuhkanurl itu didapat dari repository atau project jenkins yang sudah dibuat. kemudian screet token ambil dari access token yang sudah digenerate dari jenkins
jangan lupa untuk uncheck pada bagian ini karena pada url jenkins, saya tidak menggunakan protokol https melainkan http yangmana tidak menggunakan sertifikat SSL - jika sudah coba lakukan push event dari gitlab ke jenkins melalui webhook
jika muncul hasil seperti ini, itu artinya kalian harus mengganti job dengan project pada url jenkins yang digunakan pada webhook dari seperti ini http://<ip>:8080/job/aplikasi-antrian-web jadi seperti ini http://<ip>:8080/project/aplikasi-antrian-web catatan: misalkan kalian mendapat url kalian mengalami invalid url itu artinya ada satu settingan yang terlupakan. yaitu kita lupa untuk men-setting network dan alamat ip yang digunakan untuk outbound request. Kalian bisa pergi ke gitlab -> admin -> setting -> network -> outbound request dan masukan alamat ip gitlab kalian. dan Outbound sendiri adalah permintaan yang dikirim dari suatu sistem atau aplikasi ke sistem eksternal melalui jaringan. Contohnya dalam DevOps adalah GitLab yang mengirim webhook ke Jenkins atau Jenkins yang mengambil kode dari repository GitLab untuk menjalankan pipeline CI/CD.= sekarang coba lakukan push event lagi, harusnya sudah berhasil. jika berhasil akan menampilkan hasil seperti ini itu artinya gitlab sudah berhasil diintegrasikan dengan jenkins dan kalian juga bisa memeriksa hasilnya berhasil atau tidak dihalaman project jenkins kalian.
- Kemudian sekarang yang terakhir adalah melakukan deployment dari jenkins ke ubuntu server.
kalian bisa buat pipeline kalian sendiri atau gunakan pipeline yang saya buat kemudian kalian modifikasi sendiri, tapi sebelum kalian buat pipeline nya kalian harus config credential ubuntu server ke jenkins melalui menu
1. Buat Private dan Public Key
Jalankan perintah di terminal Ubuntu Server:
2. Cek Private dan Public Key
Setelah selesai, akan ada dua file yang dibuat:
- Private key:
~/.ssh/id_rsa - Public key:
~/.ssh/id_rsa.pub
Gunakan perintah berikut untuk melihat private key:
- setelah itu selesai kalian bisa kembali lagi ke halaman konfigurasi repository jenkins bagian pipeline dan buat pipeline atau copy paste pipline saya dibawah ini
- jika terdapat error coba periksa log error pada setiap percobaan deploy


Komentar
Posting Komentar