Administering one server is easy, administering a handful for the same department isn’t overly complex, but administering thousands of servers for dozens of different departments or companies is nigh on impossible without teams of dedicated systems administrators working on the servers.
Puppet, like CFEngine before it, is a configuration tool that allows automation of complex systems without having to manually duplicate the settings to every server. Through a client server model, with modules for most common open source and commercial applications, Puppet allows one systems administrator to manage hundreds or even thousands of systems without losing any sleep.
While most open source tools use plain text, or at worst XML files for configuration, some use databases that are open, like MySQL, and some use proprietary databases that can’t be modified except through the vendors own tools. This leads to fragmentation in configuration methods for applying simple changes to multiple systems, and let’s not open the can of worms that is updating settings in Windows systems.
Puppet was one of the first next generation, cloud ready, configuration automation tools to assist with overcoming the problem of managing multiple applications, across multiple operating systems with grace and style. Through a simple declarative syntax language that is easy to learn and apply anyone can quickly jump into managing servers.
Want to make sure that Patrol is installed on all UNIX/Linux servers to monitor them? No need to learn how to install a package on Solaris, Red Hat Linux, CentOS & that Slackware machine in the corner everyone is too scared to turn off, just set it to ‘required’ in puppet and within 15 minutes every machine that ‘requires’ Patrol has installed it. Neat!
Need to update a specific configuration file on 10,000 servers? Put the file somewhere Puppet can access it and update the configuration in Puppet to push it out.
By using modules, of which there are thousands, it doesn’t matter if the program you want to configure is managed through a plain text file, an API or a binary application, Puppet can talk the talk with your DevOps team having only one language to learn.
If you want to take Puppet further, with Ruby experience you can write your own modules and expand the Puppet universe. And with the addition of application orchestration in Puppet Enterprise 2015.3, you can easily manage the deployment of multi-tier applications, requiring configuration to be maintained consistently across multiple hosts, with the same language (slightly extended) as Puppet has used since its inception.
Puppet is not the only name when it comes to systems automation these days, if you are a Python smart shop you should look at Salt Stack, which is Python based, and includes remote command functionality as well, which is very useful. CFEngine is still around, and Chef is often used as well. All are useful tools that can make the life of your sysadmin/devops team easier.
Puppet is the tool of choice for a number of Diaxion’s customers including major banks, government agencies and universities. If you want to see how Puppet is the right tool for your environment, or you’re already using Puppet and want to find out what other awesomeness you could be doing with it, give Diaxion a call today.