Tuesday, December 18, 2018

Congifuring java services in systemd

Berhubung kebanyakan project nostra masih menggunakan java language, maka kali ini saya akan membahas tentang bagaimanan project itu di jalankan di server.

Lets go..

Hasil build dari project java ialah file berekstensi ".jar". Agar bisa dijalankan, file.jar akan dikirim/dideploy ke server melalui jenkins maupun scp manual. 
Kemudian bagaimana cara running file tersebut???
ya, betul dengan menggunakan command java -jar .


Apakah cara tersebut sudah cukup efektif untuk menjalankan aplikasi bebasis java yang dibangun di Nostra???
Tidak, kenapa?
Karena aplikasi berbasis java yang dikerjakan para mastah developer nostra umumnya memiliki beberapa profile, seperti development, staging, dan production. Setiap profile tersebut, masing-masing memiliki konfigurasi server(database or whatever) sendiri. Oleh karena itu, cara running java -jar tersebut tidak optimal untuk kita gunakan.

Terus bagaimana solusinya??

Kita dapat membuat script yang berisi perintah/command untuk menjalankan serta menghentikan java application tersebut sesuai dengan profile masing-masing. 

Di nostra, kita sudah melakukannya. Biasa kita dengar sebut dengan projectctl.sh. Kira kira beginilah isi script projectctl.sh tersebut.


Apakah script tersebut sudah cukup mengatasi masalah kita??

Harusnya sih sudah, TAPI bagaimana jika server kita direstart??
Kenapa direstart??? -> mati listrik, atau kita perlu menaikkan spec server.

Hmm, iya juga ya. Bagaimana jika server kita harus direstart? Masa iya harus menjalankan si aplikasi java tersebut secara manual? wasting my time.. 

Ahahh,, bagaimana kalau saya mengkonfigurasi si java application diatur systemd. Ya, itu solusinya.

Systemd System and Service Management merupakan sistem yang mengatur sumber daya sistem, server daemon, dan proses lainnya baik pada saat mulai boot dan juga pada sistem berjalan.

Dengan systemd tersebut saya dapat memastikan bahwa aplikasi java saya akan berjalan ketika boot. Terus bagaimana cara konfigurasinya??

Begini

1. Tulis script dibawah dan letakkan di /etc/systemd/system/strongbee
[Unit]
Description=Strongbee
After=network.target 
[Service] 
WorkingDirectory=/opt/strongbee
ExecStart=/bin/bash projectctl start profilename
User=root 
Type=forking 
[Install] 
WantedBy=multi-user.target
2.  chmod +x /etc/systemd/system/strongbee
3.  systemctl daemon-reload
4.  systemctl enable strongbee.services
5.  Dah gitu ajaa, gausah panjang panjang..

Yeahhh, akhirnya permasalahan kita teratasi.
Oleh karena itu, sudah sepantasnya tulisan ini kita akhiri . semoga bemanfaat bagi kita semua.

Big thanks to laekku land rain hard atas pencerahannya.

Cheerrssss


No comments:

Post a Comment