Pada kali ini saya akan share cara menggunakan Gitlab CI/CD untuk deploy sebuah aplikasi dan ini adalah tulisan saya ketika sedang patah hati wkwk. Sebelumnya CI continous Integration adalah sebuah proses integrasi di sebuah code kedalam repository, nah sedangkan CD continous Delivery atau deployment ke server CD dlakukan secara terus menurus dan berulang.
Kali ini saya akan membahas tentang study case dimana saya ingin mendeploy suatu aplikasi base laravel nginx kedalam server atau VM.
Hal yang perlu disiapkan adalah berikut :
- Gitlab.com
- Gitlab Runner
- VM production
Study case yang sedang saya hadapi adalah sebagai berikut :

Note :
- sebelum melakukan praktik ini pastikan anda sudah berhasil mendeploynya secara manual di server.
- Pastikan sudah add key public VM production di Gitlab
- Input id_rsa.pub ke authorized keys
Gitlab CICD untuk Deploy Aplikasi
Step 1 – Create CI
Hal pertama yang dilakukan mungkin adalah siapkan repository code nya kemduian buat satu file dengan nama .gitlab-ci.yaml yang berisikan :
stages:
- deploy
deploy_prod:
stage: deploy
image: alpine #define to VM Prod
before_script: #login to VM Prod
- apk update
- 'which ssh-agent || ( apk add openssh-client )'
- eval $(ssh-agent -s)
- echo "$SSH_PRIVATE_KEY" | ssh-add -
- mkdir -p ~/.ssh
- echo -e "Host *\n\tStrictHostKeyChecking no\n\n" > ~/.ssh/config
script:
- ssh $SRV_USER@$SRV_HOST -p $SRV_PORT "cd /var/www/html/location_file && git pull origin master && composer install && composer update && php artisan key:generate"
only:
- master
tags:
- test
Disini saya hanya menggunakan 1 stage yaitu deploy.
deploy_prod ini adalah script untuk komunikasi antara gitlab dan juga server VM kita via SSH dan juga menjalankan ssh client di container server gitlab_runner kita , dan untuk script adalah komunikasi gitlab ke VM production dengan menjalankan perintah secara otomatis untuk, pindah ke directory kemudian pull git ketika ada update juga menjalanka beberapa perintah update composer & key generate.
Step 2 – Add Variable di CICD Gitlab
Ada hal yang perlu ditambahkan ketika kita ingin mendeploy apikasi yaitu menambahkan variable di menu CICD dan beberapa yang harus ditambahakan sebagai berikut :

Description :
SRV_HOST: IP serverSRV_PORT: Port SSH serverSRV_USER: User akses serverSRV_PRIVATE_KEY: Private key ssh dari user server tsb
Step 3 – Running Pipeline
Terakhir adalah kita jalankan pipeline dari jobs yang sudah kita buat tadi dan kita bisa run secara manual atau trigerred by script/code saat ada update ke gitlab, dan tampilanya akan seperti ini.

Jika anda mengalami kendala ketika melakukan deploy maka check log detail script yaml kalian dan pastikan gitlab sudah terhubung dengan server.

Admin website igunawan.com, System Administrator, DevOps Engineer