If you’ve ever had to set up and maintain a server, the list of tasks can seem endless. You’ve got storage configuration, user account creation, and setup of the packages you need – just for starters. It’s enough of a headache on a single server, but what if you have multiple physical machines or VMs? Then there’s keeping track of updates and changes to your configuration over time.

With Puppet, these processes are automated. Puppet enables you to cut down on repetitive tasks and configure all your servers from one central location, while ensuring everything stays consistent as you reconfigure existing machines and deploy new ones. In other words, Puppet makes the server admin’s life a whole lot easier.

What is Puppet?

Puppet is a configuration management tool that simplifies the creation and maintenance of server configurations. It’s written in Ruby, but has its own declarative language, and can be installed on physical or virtual servers running Linux or Windows operating systems.

The Puppet software comes in two main versions: open source and Enterprise. While open source Puppet may be fine for your needs, Puppet Enterprise comes with expanded business features including reporting and role-based access control, plus tech support.

Why use Puppet?

Most obviously, Puppet can save time and effort when it comes to configuring, launching and managing servers – especially long-term. By automating everyday processes, server admins can carry them out more quickly and efficiently, freeing up time to focus on more worthy tasks. In terms of usability, Puppet uses modules that provide a simpler interface for some of the trickier elements of configuration, such as PHP.

One major benefit of Puppet is its cross-platform reliability. Configuration files are known as ‘manifests’ and are written in Puppet’s own declarative code – this is a simple and universal language that can be applied across a wide variety of Windows and Linux operating systems and server setups to always get the same results.

Puppet also gives you a single, up-to-date and comprehensive source for all your server configurations. For example, you might have a business-critical application that relies on a set of servers with the exact same configuration. With Puppet, it’s a simple case of deploying a single desired configuration across several machines – or changing them all at once.

This leads on to version control. Puppet is ideal for handling the change management process and avoiding what’s known as ‘configuration drift’. Your servers will often change over time, with ad hoc adjustments making it difficult to keep track of a particular machine’s state. In a worst-case scenario, this can result in system failure when a server is no longer configured correctly for the job at hand. A tool like Puppet prevents this by helping you define the exact configuration of all your servers at any time.

Another reason to use Puppet is disaster recovery. Let’s say a hard disk dies on a critical server. Puppet maintains all your existing configurations, so the process of rebuilding a server is greatly simplified and much faster. But keep in mind that Puppet only recreates the configuration, not the data – you’ll always need a separate backup for that.

If you’ve been inspired to play around with Puppet, you’ll find the ideal server solution with Fasthosts. Whether on our powerful Dedicated Servers or our highly scalable CloudNX platform, we ensure your online projects have all the resources they need to grow, develop and thrive, with UK data centres and 24/7 UK support.