Senin, 27 Februari 2023

Cara Deploy NodeJs Menggunakan CI/CD gitlab-ci.yml

Ada banyak cara untuk mengupload hasil pekerjaan menggunakan nodejs ke server baik staging atau production. Jika kita menggunakan gitlab untuk mengelola coding bersama team kita bisa menggunakan fiture CI/CD untuk melakukan deployment. Kita hanya perlu menentukan branch sebagai syarat kapan coding kita diperlukan upload ke server. Cara untuk memanfaatkan fiture tersebut cukup mudah. Cukup buat file gitlab-ci.yml di root directory project. Setelah itu copy perintah berikut :


Untuk penjelasan perintah diatas adalah sebagai berikut :
image: totorajo/pm2-node3:18-buster adalah docker image yang akan kita gunakan untukd deploy. Didalam docker images tersebut perlu diinstall apa yang menjadi keperluan apps nodejs berjalan. Kita bisa membuat versi sendiri sesuai kebutuhan. image: totorajo/pm2-node3:18-buster adalah docker image yang siap pakai keperluan build apps nodejs.

poc adalah nama pipeline atau bisa kita sebut sebagai nama proses supaya mudah dipahami. Silahkan rubah menjadi misal : staging, production atau istilah lain sesuai kebutuhan develop.

stage: deploy adalah nama tahapan proses upload. Bisa diganti dengan stage: build atau disesuaikan istilah berdasarkan flow team yang ada.

before_script: adalah proses instalasi service yang diperlukan. Step ini sama seperti kita mempersiapkan laptop kita sebelum mengerjakan project.

script: adalah proses yang kita lakukan dilocal ketika apps kita akan dilakukan testing. Dalam kasus ini kita akan melakukan build coding nodejs menjadi file pada directory dist/

only: kita isi branch mana yang menjadikan trigger deploy. Jika kita isi misal test, staging maka setiap ada push ke branch tersebut makan proses ci/cd akan berjalan.

$private_key_server adalah nama variabel dari private key untuk server yang akan menjadi tujuan upload. untuk melakukan setup variabel ini bisa dilakukan di menu setting CI/CD bagian variabel.



docker@120.226.138.129:/home/apps/ : docker@120.226.138.129 adalah username dan IP untuk login ssh server. Kemudian /home/apps adalah lokasi folder dimana file / coding akan diupload. Bisa sesuaikan dengan lokasi server yang dipakai.

Dengan menggunakan fiture ci/cd pada gitlab akan meningkatkan produktivitas karena kita bisa fokus pada pengembangan apps untuk keperluan upload ke server secara otomatis. Peran DevOps untuk keberhasilan implementasi cara tersebut diperlukan. Meski akan menjadi repot diawal percayalah selanjutnya team bisa lebih produktif. Jika proses pipeline berhenti dan terjadi error permission denied silahkan ikuti https://www.totorajo.web.id/2022/10/cara-mengatasi-key-permission-denied.html
Semoga membantu.

Sabtu, 01 Oktober 2022

Cara Mengatasi Key Permission Denied pada CI/CD Gitlab

Menggunakan fiture CI CD Gitlab menjadikan kita lebih mudah dalam proses deployment secara otomatis ketika melakukan commit atau request merge. Dalam beberapa kondisi proses CI/CD menjadi gagal dengan keterangan Permission Denied. 

Jika menemukan kasus tersebut ketika kita proses cicd pada gitlab berikut langkah mudah yang perlu kita dilakukan. Pastikan id_rsa sudah sesuai dengan format yang dibutuhkan. Silahkan ikuti tutorial berikut: 

https://www.totorajo.web.id/2022/05/membuat-ssh-keys-pada-linux.html.

Jika setelah melakukan langkah 1 belum berhasil dan masih Permission Denied. 

Silahkan coba ulangi proses CI/CD Gitlab semoga berhasil.

Kamis, 12 Mei 2022

Membuat SSH Keys Pada Linux

SSH Key digunakan untuk mengotorisasi login tanpa perlu menggunakan password server.  Sehingga ketika ingin melakukan koneksi SSH pada server kita tidak perlu menggunakan username dan password.  

Ketika kita menggunakan google cloud, gitlab, github SSH key bisa memudahkan kita dalam keperluan akses. Berikut adalah cara membuat SSH Key pada linux.

Silahakan login SSH ke server kemudian ketikan : ssh-keygen  Jika muncul pertanyaan cukup tekan enter saja pada pertanyaan berikut :

Enter file in which to save the key (/home/user/.ssh/id_rsa):
Enter passphrase (empty for no passphrase): 
Enter same passphrase again:

Silahkan gunakan diserver yang ingin kita login tanpa password. Semoga membantu

Update : Jika hasil private_key dalam bentuk openssh dan  tidak bisa dipakai yang dibutuhkan bentuk RSA silahkan jalankan perintah :

ssh-keygen -p -m PEM -f ~/.ssh/id_rsa
DomaiNesia