Review: Puppet 3.0 pulls more strings
Version 3.0 of Puppet Labs' configuration automation tool shines with speed boosts, orchestration improvements, and deeper support for Windows servers
Reports, inventory, and Live Management
The Web UI also provides reporting and inventory features. Through a tabbed UI, you can view not only at-a-glance information on how Puppet itself is running on all nodes, but also detailed info on users, groups, installed packages, and running services on any given selection of nodes.
You can also perform certain tasks across nodes or groups of nodes from Live Management. Aside from enabling, disabling, and running the Puppet agent on demand, you can cause a node or group of nodes to install a package, start a service, or stop a service, or you can use apt
or yum
to update the server. There are also facilities to perform queries of the agent on a node or various rpcutil
tasks, such as retrieving individual configuration items.
As far as the Puppet reporting goes, you get a tabular display of nodes and their run status. You might see a few nodes with failed updates, for example, and you can quickly dig into the logs to see what failed to apply. You can also get detailed reports on each agent run that provide in-depth info on what did or did not happen during that run. In addition, you can see how long it took to make the run, how many modifications were made, and so forth.
You can also search through inventory items across nodes. If you wanted to display a list of all nodes running kernel version 2.6.32, for instance, you would simply query for inventory item kernelversion = 2.6.32
. By default Puppet collects a ton of inventory data, from BIOS version to system uptime to swap space to SELinux policy enforcement.
Powerful means complex
Puppet is not for the faint of heart, nor should it be. Shepherding the configurations of a wide range of services and elements, managing package installation and removal, and collecting inventory data from dozens, hundreds, or thousands of servers is an inherently difficult task. Add to that the ability to heavily customize existing modules and to develop your own modules according to your own specifications, and you have a recipe that requires a great deal of complexity. Trying to obscure that complexity with overly simplistic, high-level configuration interfaces might make easy things easier, but it would make hard things impossible.
Puppet can be scaled out using multiple master servers and a variety of load-balancing methods. The fun part here is that you can use Puppet to manage your Puppet Master servers as well, allowing for synchronization across multiple masters. Plus, although you may have many master servers, you would still want a single reporting server to collect data from the masters.
Puppet Enterprise is not intended for the casual user or a small infrastructure. (In those cases, the small-scale version, Puppet Solo, might be a better fit.) Puppet Enterprise is intended for infrastructures with large numbers of similar servers, both physical and virtual. It can be used to manage switches, routers, and storage arrays, and it provides a reasonable means to handle them all. If you're looking for a quick-fix, clickable, GUI-based configuration management framework, this isn't it. If you're looking for a solid, scalable solution that provides plenty of access for deep custom development, you might find Puppet Enterprise to be the right choice.
This article, "Review: Puppet Enterprise 3.0 pulls more strings," was originally published at InfoWorld.com. Follow the latest developments in application development, cloud computing, and open source at InfoWorld.com. For the latest business technology news, follow InfoWorld.com on Twitter.
Copyright © 2013 IDG Communications, Inc.