Frankinstall Tweaking Ruby Mongrels
What a fun few days! I reported earlier I was in the midst of Ruby on Rails. The small project is coming along fine. Even though I could quickly build in Python or PHP, its time to learn and immerse myself in a new language — and more importantly, a new platform.
This platform is more than just code: it is also the concepts of version management, agile development, fast deployment and easy roll back.
So the configuration:
Debian-sarge: from a new base install. Added to this is subversion for version management, postgresql for database storage. Tweaks are required to get this part working and ready for Ruby on Rails.
As Debian has a strict policy for “stable” packages that can be installed into their stable OS, you have to munge /etc/apt/sources.list to point to servers containing “testing” or “unstable” packages. This causes heartache as there are all sorts of bits-and-pieces on these servers that may conflict. So frankinstall time.
What is “frankinstall”. I am sure the linguistic source is from “frankenstall” or “frankenstein”. Basically, you download the sources, ./configure && make && make install yourself. The result is a half-package managed deployment, half source compiled and installed — leaving the administrator to master the system. Thankfully, 18 years of Unix means that this seems the best, anyway.
Then comes the myriad of configuration files:
As I planned to deploy behind Mongrel and Apache; I had to upgrade to Apache 2.2 (to get proxy_balancer), Ruby 1.8.5 (to get the latest Mongrel 0.3.13.4 with Mongrel_cluster 0.2.1) and Capistrano for remote deployment. Apart from the source, the best resource for all this text file tweaking is at Coda Hale’s site, with some extra double-cross checking from Rimuhosting’s wiki.
As I have split our Debian server’s IP into different parts for security, some extra work was required on the application’s deployment under Apache (essentially, getting VirtualHosts correct) and ensuring that the /log/ directory was correctly linked to the current release in the application deployment.
In the end, our Debian server now is a source-code repository and application deployment platform — with a mongrel_cluster for multiple users behind safe and secure Apache.
So why do all this?
Today Liam is using Gary’s Mod to build a custom environment in Half Life 2. Different generation, different tweaking I guess.