I have been sharing hosting with some old work collegues for a long while but I am getting the urge to play with some Devops tools. I don’t want to disrupt them so I need another sandbox. I did most of the system admininstration for our Rails Rumble team the last couple of years and thought the Linode VPSs were reasonably speedy and their configuration web site not too crazy making. And I suspect for the things I have been doing, their lowest end package will be just fine.
First decision: what Linux distribution do I want to run? I am more familiar with RPM-based boxes so am tempted to go with either their Fedora 19 or CentOS 6.4 options. However, the docs for both of those consider 1G RAM to be a bare minimum for any install. While Ubuntu quotes 0.5G as their minimum. I don’t know if the difference is a difference in expectations (is slow acceptable?) but I rather suspect that Ubuntu is a bit trimmer. So time to suck it up and learn to like the Debian package management stuff.
This is a server that I want to be pretty stable, so I think the Precise Penguin 12.04 LTS distribution is what I want. I tried doing a couple of trial installs from StackScripts and one just from the configuration manager and all of them installed and then refused to boot for “unknown reasons”. Not good. I tried booting one in rescue mode and logging in via the lish console. But I am not really sure if there is any log file that would show me any information. I don’t recall exactly where to look but I didn’t see anything while poking around in things in /var/log/*. One theory is that my problem was choosing the 32bit distro. Once I capitulated and asked for a 64bit system, I could build and boot in a variety of ways, just from the distro, or from either of the following StackScripts:
Minimal Chef Solo which upgrades all the currently installed packages, then adds the Opscode apt repository and installs chef from there.
Ubuntu 12.04 - Ruby 1.9.3 which installs the packages needed to compile ruby from source, and then does just that (Ruby 1.9.3-p194). Or at least it says it does that. I saw evidence that it had done the downloading and untarring but ‘which ruby’ gave nothing. Following the steps listed by hand worked just fine so I am not sure if there was a timing issue or perhaps something different about running the commands interactively or what. Anyway mostly works.
OK so what strategy do I want to use? The first one seems generally easier but installs an older ruby (1.8.7-p352) and older chef (10.18.2) into /usr/bin. The second one gives me a recent ruby (and I can make my own script just like it for the latest ruby 1.9.3 version). It also installs into /usr/bin so it will be the global system ruby. But it is probably good enough to be the ruby I use for my Rails hosting - without bothering with RVM. Hmmmm let’s look at setting up Chef before making my final decision.