Restart Docker-Compose Menggunakan Pipeline Syntax Jenkins

Ayi angio
5 min readNov 7, 2019

--

Jenkins.io

Hai teman-teman gimana kabarnya nih semoga kalian dalam keadaan baik secara mental maupun fisik.

pada kesempatan kali ini saya akan sharing tentang sedikit config mengenai CI/CD menggunakan pipeline syntax pada jenkins.

lebih tepatnya saya hanya akan membahas CD (Continuous Deployment) pada server webapp, dikasus ini kita “deployement = restart docker-compose “, nextnya saya akan buat tulisan-tulisan singkat mengenai CICD jenkins atau tepatnya konfigurasi pada server jenkins.

Prerequisite

  • Server Jenkins Sudah ada, jika belum ada mohon dilihat cara instalasinya DISINI.
  • Server yang terdapat WebAppnya dan telah terinstall docker engine dan docker-compose, kalau belum ada coba lihat DISINI

Note : semua server pada tulisan ini menggunakan OS Ubuntu.

Step by step

pertama-tama kita buka jenkins melalui browser, untuk urlnya kita bisa menggunakan url bawaan dari aws.

(Optional)

jika kalian mengalami error saat mengakses jenkinsnya mungkin bisa dicek di security group aws dan allow port 8080 atau 80, terus coba dengan http://(url default aws ):8080, jika ingin menggunakan port 80 maka masuk dengan ssh pada server jenkinsnya kemudian masukan command

$ sudo iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8080
Login Page Jenkins

(Optional)

jika ada belum merubah password default dari jenkins, anda masuk ssh ke server jenkinsnya dan jalankan command dibawah ini kemudian copy di login page-nya, untuk username defaultnya adalah admin.

$ sudo cat /var/lib/jenkins/secrets/initial/AdminPassword

jika berhasil maka akan muncul login page dari jenkins (jika anda sudah login maka langsung masuk ke halaman dashboard)

Sebelum membuat job baru mari kita install plugin SSH agent, klik Manage Jenkins yang ada pada bagian kiri menu, terus ke manage plugins.

Manage Plugins

Setelah itu ke tab Available, lalu cari SSH agent dan centang dan pilih download now and install after restart. (pada tulisan ini ssh agentnya telah terinstall sebelumnya )

Manage Plugins

setelah itu tunggu beberapa saat, maka server akan restart dan login kembali (disarankan refresh untuk melihat progresnya).

Next setelah login kembali, kita buat Job baru pada server jenkins kita.

ke new item lalu pilih pipeline, jangan lupa kasih nama jobnya lalu pilih OK

New Item On jenkins

setelah itu maka kita masuk kehalaman untuk konfigurasi pipeline jenkinsnya.

langsung saja kita ke tab pipeline

Pipeline Tab

kemudian klik pipeline syntax (untuk menggenerate pipeline syntax Jenkins)

pilih sample stepnya sshagent, terus tambahkan credentials baru dan pilih jenkins

Pipeline syntax

setelah anda klik add, maka akan muncul modal seperti ini

Add Credentialds

Pertama pilih Kind dengan ssh username with private key, selanjutnya isi Id dan description sesuai keinginan anda.

usernamenya diisi sesuai dengan username instance awsnya, dan Private Key Pilih Enter directly -> add -> isi dengan aws keypair (file yang ekstensi .pem) caranya dengan buka file .pemnya dengan text editor lalu copy semua datanya lalu paste di coloum key, untuk passphrasenya dikosongkan saja, jika sudah selesai semua langsung klik add.

Generate Pipeline Script

Generate Pipeline Script lalu copy scriptnya.

back ke halaman config

Side menu

dan masuk lagi ke halaman configure

Side menu

lalu masuk lagi ke tab pipeline dan paste script hasil generate kedalam kolom script.

selanjutnya tambahkan script seperti dibawah ini

Jenkinsfile

Penjelasan

  • pada line ke-2 stage itu berfungsi untuk mebedakan nama dari tiap langkah dalam pipeline
  • pada line ke-3 adalah script hasil dari generate yang kita lakukan diatas yang ada di dalam kurung siku pasti berbeda-beda.
  • pada line ke-4 adalah script untuk mengeksekusi perintah dijenkins server, serta untuk kutip 3 itu berfungsi untuk me-wrap command lebih dari satu baris.
  • pada line ke-5, untuk script ini
ssh -o StrictHostKeyChecking=no 

copy aja soalnya ini scriptnya default dari jenkinsnya.

selanjutnya, script untuk masuk ke ec2 dengan username dan ip private

<Username EC2 instance >@<IP PRIVATE EC2>

selanjutnya, untuk cicdJenkins/docker-compose.yml adalah path file docker-compose

sudo docker-compose -f cicdJenkins/docker-compose.yml up -d

setelah semua sudah sama dengan script yang diatas maka langsung save saja configure-nya.

Langsung Build Now.

Side menu

setelah dibuild maka hasilnya akan seperti ini

Stage View Jenkins

Jika kita ingin melihat log hasil build maka klik #1 yang ada dibuild history, dan pada menu sebelah kiri pilih console output.

Console Output

sekian dari tutorial saya, mohon maaf kalau banyak salah dan penjelasan yang kurang baik, karena kesempurnaan hanya milik Allah SWT.

Semoga bermanfaat

Happy Coding and Wasalam :)

--

--

Ayi angio
Ayi angio

Written by Ayi angio

DevOps Engineer | Github: Ayiangio | Email: moh.harisangio@gmail.com

No responses yet