Menuju 1.3.15: spanel setup

Versi 1.3.15 yang akan dirilis beberapa minggu lagi menghadirkan beberapa fitur baru. Tiap posting dari seri “Menuju 1.3.15″ akan membahas satu dari fitur-fitur ini. Pada posting kali ini: “spanel setup”.

Perintah “spanel-setup” sebelumnya merupakan sebuah skrip tunggal yang monolitik (sekitar 2500+ baris kode Perl). Ada beberapa kekurangan yang keterbatasan yang dirasakan selama ini. Pertama, step check-selections (mengeset daftar paket Debian yang diinstal) dan check-setup (membuat file/direktori yang dibutuhkan, memasukkan snippet konfigurasi, dan semua setup lain) yang terpisah. Dulu saya sengaja memisahkan ini karena memikirkan fleksibilitas, namun nampaknya ini keputusan yang keliru karena kadang salah satu langkah tidak dilakukan sehingga sistem menjadi tidak konsisten. Kedua, step check-setup kadang-kadang harus diulang beberapa kali sampai seluruh setup benar. Ini dikarenakan alur kode setup yang hanya one-pass sehingga setelah skrip membenarkan sebuah setting, ia tidak mengulang pengecekan untuk memastikan apakah setting tersebut sudah benar atau tidak. Tentu saja ini agak mengganggu admin yang melakukan setup.

Karena itu pada versi terbaru Spanel, spanel-setup direfaktor ulang. Kini ia menjadi bagian dari perintah “spanel”, yaitu “spanel setup”. Perintah tunggal “spanel” adalah framework aplikasi yang memberi keuntungan waktu startup yang lebih cepat dan fitur-fitur seragam, salah satunya tab completion di shell bash.

Setup juga dibuat menjadi modular, dibagi-bagi menjadi modul dan fungsi. Semuanya ditaruh di keluarga modul Perl Spanel::Setup::*. Ini mirip dengan API (yang juga ditaruh di dalam modul-modul Perl Spanel::API::*). Setiap fungsi setup mengecek sebuah setting, dan dapat bekerja dalam beberapa mode: dry run (simulasi, hanya mengecek tanpa melakukan modifikasi), normal setup, dan unsetup (untuk membalikkan setup, uninstall). Antara fungsi-fungsi ini terdapat hubungan dependensi, sehingga kita bisa melakukan run terhadap sebuah fungsi setup saja (contoh: service.proftpd untuk mensetup ProFTPD) dan semua dependensi yang diperlukan oleh fungsi setup tersebut (antara lain: konfigurasi Spanel, requirements Spanel) akan dijalankan juga terlebih dulu. Dengan demikian, dipastikan sebuah setting benar-benar konsisten dari top-bottom.

Kita juga bisa melakukan show run, yaitu mendaftar urutan pengerjaan fungsi-fungsi setup tanpa benar-benar menjalankannya.

Cara kerja setup yang baru ini barangkali baru akan gamblang jika dijelaskan lewat contoh dan screenshots. Namun harap bersabar menunggu posting berikutnya. Sampai jumpa!

Categories: Pengembangan

Leave a Reply