Hallo semuanya semoga dalam keadaan sehat selalu!
Kali ini kita akan mengerjakan simple project CI/CD menggunakan Jenkins. Bagi teman-teman yang sudah belajar DevOps pasti tidak asing dengan istilah CI/CD dan salah satu tools popular Jenkins. Bagi yang belum pernah belajar sebelumnya, CI (Continuous Integration) artinya proses pengujian dan pembuatan software secara otomatis setelah kode aplikasi yang baru terintegrasi ke dalam repository (seperti Github, Gitlab dll). Sedangkan CD (Continuous Delivery) adalah proses penyampaian aplikasi yang dibuat dalam proses CI ke bagian lingkungan production (linkungan yang digunakan oleh user), yang dimasukkan melalui automated test. Banyak tools yang dapat digunakan dalam proses CI/CD salah satu yang popular adalah yang akan kita gunakan setelah ini yaitu Jenkins.
Pada kesempatan ini kita akan membuat simple CI/CD seperti gambar diatas dengan menggunakan github untuk repository penyimpanan code, Jenkins sebagai CI/CD server dan EC2 instance untuk tempat deployment. Langsung saja kita mulai…
Sebelum mengikuti hands on ini teman-teman harus sudah memiliki 2 server/virtual machine yang sudah :
a. Terinstal Jenkins ( jika belum ikuti panduan https://skalearning.blogspot.com/2021/07/install-and-configure-tomcat-server-on.html)
b. Terinstall Tomcat Server ( jika belum ikuti panduan https://skalearning.blogspot.com/2021/07/setup-and-configure-tomcat-server-on.html)
Jika sudah teman-teman bisa langsung mengikuti step dibawah..
Step by step:
1. Buka Jenkins dengan cara akses http://IP_ADDRESS:8080
2. Kita akan menambahkan plugin terlebih dahulu pada Jenkins agar bisa digunakan untuk eksekusi deployment kita. Pilih manage Jenkins pada sebelah kiri -> manage plugin, pilih available dan cari “Deploy to container plugin” pada kolom search kemudian checklist dan klik “install without restart”. Tunggu proses selesai, teman-teman bisa cek di bagian installed maka akan muncul.
3. Selanjutnya karena kita akan mendeploy aplikasi ke tomcat server maka Jenkins harus memiliki akses untuk ke server tersebut dengan cara menambahkan kredential. Masuk ke dashboard -> manage Jenkins -> manage credentials. Lalu klik Jenkins seperti dibawah -> klik global credential -> add credentials.
Pada konfigurasi credential masukkan user “deployer” dan password sesuai dengan saat kita membuat user pada tomcat server, serta masukkan ID dan desc.
5. Kita lakukan konfigurasi job, pada source code management masukan repository (https://github.com/arisukarno25/hello-world.git) ini adalah web apps sederhana yang akan menampilan hello-world dengan java language. Kemudian pada bagian branch pilih master.
Jika terdapat error pada repository git, maka pastikan terlebih dahulu git sudah terinstall di dalam Jenkins server.
6. Pada build trigger checklist “Poll SCM” dan akan kita buat setiap 2 menit (*/2 * * * *) ini semacam cronjob teman-teman bisa menggunakan web ini https://crontab.guru/ untuk mempermudah. Dengan begini Jenkins akan mengecek setiap 2 menit apakah pada repository terdapat perubahan, jika ada maka akan menjadi trigger.
7. Pada bagian build kita berikan goals (clean install package) dan POM nya pom.xml sesuai di repository. Ini salah satu proses build otomatis yang akan dilakukan oleh Jenkins ketika ada trigger.
8. Tambahkan post-build dan pilih deploy war/ear to a container. Dengan begini maka setelah code di test dan di build maka akan di lanjutkan ke proses post-build.
9. Masukan **/*.war pada kolom WAR/EAR file, kemudian “add container” dan pilih tomcat 8 sesuai server yang sudah dibuat.
10. Pilih kredential deployer yang sudah kita buat sebelumnya dan masukkan tomcat URL (alamat URL tomcat server). Kemudian apply dan save.
11. Dengan begini kita sudah membuat job yang akan melakukan otomasi CI/CD oleh Jenkins. Langkah terakhir adalah kita akan melakukan testing dengan cara memberikan perubahan pada repository. Kali ini Saya akan langsung melakukan perubahan melalui github langsung, namun ini bukan best practice karena developer akan melakukan perubahan melalu local environment masing-masing. Kita akan melakukan perubahan pada file webapp/src/main/webapp/index.jsp seperti berikut.
Kita beri comment commit dan commit change.
12. Buka job yang sudah kita buat maka proses build akan berjalan secara otomatis dan jika success maka akan muncul tanda checklist seperti dibawah.
Kalau ingin melihat detail build dan test nya bisa di klik di bagian angkat tersebut tepat nya di bagian console output.
13. Terakhir kita buka web apps kita http://IP_ADDRESS:8090/webapp/ dan perubahan kita sudah sukses dan otomatis ter update di server EC2 instance.
Selamat belajar dan mencoba! Jangan lupa comment jika ada pertanyaan…:")
0 Komentar