Menjalankan & monitoring Batch/Script melalui Jenkins & Ansible di AWS

stephanus nugraha
2 min readMay 31, 2018

--

Hi semuanya,

Kali ini saya mau sharing tentang bagaimana menjalankan dan me-monitoring batch server dengan tools Ansible dan Jenkins. Kira-kira topologi nya seperti ini :

Batch flow-chart

Di situ saya menjalankan process batch dari jenkins, diatur berapa kali dijalankan setiap harinya melalui cron di jenkins. Lalu pada saat running, jenkins akan memberitahu Ansible. Dan Ansible akan mengeksekusi batch itu ke Server yang dituju. Untuk case ini batch hanya bisa dijalankan 1x karena permintaan developer. Oleh karena itu di Ansible saya memakai module RunOnce, untuk faktor HA (High Availability), karena apabila server A error atau mati, maka ansible akan menjalankan batch melalui server B.

Pertama buat dulu script di playbook Ansible untuk mengeksekusi server di AWS. Untuk script nya, saya kasih contoh sperti ini :

script untuk module runonce

Setelah itu, jalankan playbook-nya melalui Jenkins. Dan jangan lupa atur juga kapan saja mau dieksekusi melalui fitur jenkins di Build-periodically. Contohnya seperti ini :

Maka setiap jam 1.30, 5.30, 7.30, 11.30, 15.30 Jenkins akan melakukan batch server. Dan hasilnya akan seperti ini : (Lihat di bagian Build History, maka waktunya akan cocok dengan yang kita mau)

Lihat di bagian Build History

Dan biasanya saya juga membuat alarm di Jenkins apabila job itu failure saat dieksekusi, maka akan me-notif email ke saya.

Selanjutnya akan saya perlihatkan hasil output dari eksekusi job di jenkins :

Dari Gambar di atas terlihat bahwa batch hanya jalan di IFPO-A saja, tidak jalan di IFPO-B. Berarti batch yang kita configure benar, karena sesuai dengan permintaan developer bahwa batch hanya boleh dijalankan 1x. Dan apabila server A mati, maka batch akan otomatis dijalankan di server B.

Sekian dari saya. Terima kasih

--

--