Post Pic

Instalasi Mongrel dan Mongrel Cluster di Ubuntu Hardy

Mongrel dan mongrel_cluster adalah salah satu dari sekian aplikasi yang bisa digunakan untuk menjalankan aplikasi berbasiskan rails. Sedikit lebih rumit bila dibandingkan dengan thin atau mod_rails, tapi ini adalah salah satu cara yang paling ‘original’ untuk menjalankan aplikasi rails.


Silakan lakukan instalasi ruby and rails di Ubuntu Hardy Anda, seperti yang sudah saya tuliskan caranya di artikel sebelumnya, Instalasi Ruby on Rail di Ubuntu Hardy.

Instalasi Mongrel

Mongrel bisa dengan mudah diinstal menggunakan rubygems.

sudo gem install mongrel

Menjalankan dan Mematikan Mongrel

Untuk menjalankan mongrel, Anda harus berada di direktori instalasi aplikasi rails.

mongrel_rails start -e production -p 5000

Perintah di atas, akan menjalankan mongrel di port 5000. Karena kita tidak menambahkan opsi -d, mongrel akan dijalankan di foreground. Dan terminal harus tetap terbuka agar aplikasi tidak berhenti dijalankan. Untuk menghentikan mongrel, Anda tinggal tekan control c.

Untuk menjalankan mongrel di background jalankan perintah seperti di bawah ini. Sebagai informasi tambahan, -e production adalah untuk memilih environtment rails yang akan digunakan.

mongrel_rails start -e production -p 5000 -d

Dan untuk mematikan mongrel, lagi-lagi Anda harus ada di direktori instalasi aplikasi rails, lalu jalankan perintah berikut

mongrel_rails stop

Menjalankan aplikasi rails meggunakan mongrel sangat mudah. Tapi akan tidak efisien jika Anda memiliki banyak aplikasi rails yang ingin dijalankan. Solusi untuk masalah ini adalah mongrel_cluster.

Instalasi Mongrel Cluster

Sama seperti mongrel, mongrel_cluster juga bisa kita instal dengan mudah menggunakan rubygems

sudo gem install mongrel_cluster

Mengkonfigurasi Mongrel Cluster

Untuk menjalankan 2 buah cluster mongrel

mongrel_rails cluster::configure -e production -p 8000 -N 2 -c /opt/aplikasi/test -a 127.0.0.1

Di contoh di atas, aplikasi cluster di jalankan sebanyak 2 buah, mulai dari port 8000, serta listen hanya di ip 127.0.0.1.

Untuk melihat opsi lain yang bisa Anda terapkan, jalankan perintah berikut

mongrel_rails cluster::configure -h

Kembali ke konfigurasi di atas, perintah itu akan membuat berkas konfigurasi baru. Seperti yang tertulis saat perintah dijalankan.

Writing configuration file to config/mongrel_cluster.yml.

Sekarang mari kita lihat berkas konfigurasi tersebut. Isinya kira-kira seperti di bawah ini.

cwd: /opt/aplikasi/test
log_file: log/mongrel.log
port: "8000"
environment: production
address: 127.0.0.1
pid_file: tmp/pids/mongrel.pid
servers: 2

Anda bisa menyunting berkas tersebut untuk mengganti beberapa parameter yang Anda inginkan.

Menjalankan dan Mematikan Mongrel Cluster

Untuk menjalankan cluster

mongrel_rails cluster::start

Untuk merestart

mongrel_rails cluster::restart

Dan untuk mematikan cluster

mongrel_rails cluster::stop

Membuat Skrip Init untuk Mongrel Cluster

Pertama buat dulu folder tempat menyimpan konfigurasi cluster

sudo mkdir /etc/mongrel_cluster

Setelah itu, buat simbolik link konfigurasi aplikasi rails ke direktori yang sudah kita buat sebelumnya

sudo ln -s /opt/aplikasi/test/config/mongrel_cluster.yml /etc/mongrel_cluster/testapp.yml

Skrip init bisa kita salin dari instalasi mongrel_cluster

sudo cp /usr/lib/ruby/gems/1.8/gems/mongrel_cluster-1.0.5/resources/mongrel_cluster /etc/init.d/

Pastikan skrip menggunakan mode yang tepat, bisa dieksekusi

sudo chmod +x /etc/init.d/mongrel_cluster

Pastikan skrip dijalankan secara otomatis di run level defaults

sudo /usr/sbin/update-rc.d -f mongrel_cluster defaults

Mengadministrasi Cluster

Melihat status cluster

sudo mongrel_cluster_ctl status

Start, Stop, Restart cluster

sudo mongrel_cluster_ctl start
...
sudo mongrel_cluster_ctl stop
...
sudo mongrel_cluster_ctl restart

Rangkuman

Artikel yang lumayan panjang, tapi mudah-mudahan tidak membuat Anda tambah pusing. Prinsipnya menjalankan aplikasi rails menggunakan mongrel sebetulnya tidak susah, hanya saja ketika Anda diharuskan membuat skrip init, prosesnya lebih rumit bila dibanding dengan mod_rails atau thin.

Proses mengkonfigurasi apache, lighttpd atau nginx yang diproxy ke mongrel atau mongrel cluster akan dibahas dalam tulisan terpisah.