Puppet 0.16.0 review

by rbytes.net on

Puppet lets you centrally manage every important aspect of your system using a cross-platform specification language that manages all

License: GPL (GNU General Public License)
File size: 308K
Developer: Luke Kanies
0 stars award from rbytes.net

Puppet lets you centrally manage every important aspect of your system using a cross-platform specification language that manages all the separate elements normally aggregated in different files, like users, cron jobs, and hosts, along with obviously discrete elements like packages, services, and files.

Puppet's simple declarative specification language provides powerful classing abilities for drawing out the similarities between hosts while allowing them to be as specific as necessary, and it handles dependency and prerequisite relationships between objects clearly and explicitly.

Puppet is a system configuration tool. Puppet project has a library for managing the system, a language for specifying the configuration you want, and a set of clients and servers for communicating the configuration and other information.

The library is entirely responsible for all action, and the language is entirely responsible for expressing configuration choices.

Everything is developed so that the language operations can take place centrally on a single server (or bank of servers), and all library operations will take place on each individual client. Thus, there is a clear demarcation between language operations and library operations, as this document will mention.


The vast majority of Puppet architectures will look like a star, with a central server running puppetmasterd, and each client node running puppetd, contacting that central server.

Your central manifest, which contains the configuration for all of your nodes, needs to be on the central server, most likely at /etc/puppet/manifests/site.pp.

Start the puppetmasterd daemon, and then tell your clients to contact that server by specifying -s < servername > as arguments to puppetd, replacing "< servername >" with the name of the server. Alternatively, puppetd defaults to looking for a server named "puppet", so you can just create a CNAME for your server, so that it answers to "puppet".

It is a good idea to run both the server and client in verbose mode, enabled with the -v flag, until you are sure everything is working. As each new client connects, you will need to run puppetca --list to list the certificates waiting to be signed, and then puppetca --sign < name >, replacing "< name >" with the name of the client whose certificate you want to sign. You can turn on autosigning by creating /etc/puppet/autosign.conf and put the hosts, domains, or IP addresses or ranges that you want to sign in there.

Ruby version 1.8.2 or later


Run 'ruby install.rb' or add the 'lib/' directory to your RUBYLIB path.

After that, you should be able to go into test/ and run ./test, or run 'bin/puppet' on whichever puppet config files you want.

What's New in This Release:
This release adds FreeBSD ports support.
It adds object serving (both receiving and sending); although it's not yet used anywhere, it provides the ability for a Puppet node to be the source or destination for copying any managed Puppet object.

Puppet 0.16.0 search tags