The tools you install first when you get a new server

Everyone loves that new car smell, right? That heady mix of volatile organic compounds, phthalates and plasticisers that takes you to another level…

Hmm, maybe that’s not so appealing after all. Thankfully, the smell of a fresh server is whole lot less toxic for you than a car, especially when it’s kept at a distance from you in a data centre or when it’s a virtual machine in the cloud.

But just like your new car, a new server can always do with some things adding to it to make it just so — configured how you like and ready to go to work (or to play). So I asked you on Twitter today, “what are the tools that you install first when you get a new server?”

Being an opinionated bunch, you happily gave me a ton of suggestions for the first few tools to install that help put your server to work.

Not surprisingly, I almost immediately instigated another editor war with over 60% of replies (including @winjer and @tomnomnom) suggesting vim and only one reply apiece for nano, emacs and joe. Nothing about butterflies though.

System monitoring tools like top, htop, iotop also featured heavily, including in replies from @TheGingerDog, @OblongOrange. htop is personal favourite as it shows all the processes running (not just the “top” processes) and uses colour to give an at-a-glance idea of server load.

@apjone and @p_h also mentioned mutt which is probably quite overlooked these days. Mutt is useful for monitoring any messages sent to a local UNIX inbox, e.g. root, which is where Symbiosis (Bytemark’s simple server administration software) sends the results of its regular tasks.

Reflecting the trends towards automation and consistent deployment, @binaryape, @tigersoutheast, @telent_net and @rjw1 all mentioned puppet. It’s almost hard to believe that Puppet has been around for 10 years and that we’re still not deploying everything through it!

If you are regularly deploying servers, or planning to migrate a load of legacy servers to new cloud machines, Puppet is definitely worth looking into. Puppet is an open source server configuration manager. It’s a simple but powerful way to manage the configuration and deployment of Linux (and other Unix-like) systems, as well as Windows.

To configure servers using Puppet, sysadmins create “manifests” — these are simply text files that state the required configuration of the server, e.g. what tools must be installed, which users must be created and what privileges they must have. Puppet can be standalone or (more commonly) used in a server/client setup which is great for those big deployments or if you’re regularly creating new servers for new projects.

Puppet isn’t the only player in the configuration management game. At Bytemark, we use Ansible for some tasks and there are a whole load more out there, all with pros and cons.

Thanks for all the feedback and suggestions about the tools you’d install on a new server. You can see all the replies on Twitter. Also, if you do want to keep fighting the editor wars, there’s an ongoing battle over at UsVsTh3M.

Do you feel the urge to play with a new server right now? Get going and sign-up to BigV here.