Gitlab CICD untuk Deploy Aplikasi

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 :

  1. sebelum melakukan praktik ini pastikan anda sudah berhasil mendeploynya secara manual di server.
  2. Pastikan sudah add key public VM production di Gitlab
  3. 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 server
  • SRV_PORT : Port SSH server
  • SRV_USER : User akses server
  • SRV_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.

cicd success

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

Leave a Reply

Your email address will not be published. Required fields are marked *