Puppet is a configuration tool for systems.
The declarative specification language offered by Puppet provides powerful classing abilities that can draw out similarities between hosts while allowing them to be as specific as necessary. It handles dependency and prerequisite relationships between objects clearly and explicitly.
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 responsible for all action, and the language is responsible for expressing configuration choices. Everything is developed so that the language operations can take place centrally on a single server, and all library operations will take place on each individual client.
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 needs to be on the central server, most likely at /etc/puppet/manifests/site.pp.
After starting the puppetmasterd daemon, you can tell your clients to contact the server by specifying -s < servername > as arguments to puppetd, or create a CNAME for your server so that it answers to "puppet". Running both the server and client in verbose mode, enabled with the -v flag, is recommended 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. Autosigning can be enabled by creating /etc/puppet/autosign.conf and adding the hosts, domains, or IP addresses or ranges that you want to sign.
Installation of Puppet is easy - just 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.
Overall, Puppet is an excellent system configuration tool for anyone looking to centrally manage their system's crucial aspects with a powerful and declarative specification language.
Version 0.25.0: N/A