Puppet
This page is obsolete. It is kept for historical interest only. It may document extensions or features that are obsolete and/or no longer supported. Do not rely on the information here being up-to-date. |
Puppet is a configuration management system. System configuration is stored on the puppetmaster (hostname puppet), and other servers use the puppet agent to periodically pull its configuration.
The configuration is defined in terms of packages, files and services. A manifest defines which packages, files and services need to exist on the respective client. Puppet configuration is stored in bzr to provide version control.
Editing configuration
In a directory of your choice run:
bzr checkout /mnt/storage/bzr/puppet-config/trunk puppet-config
This will checkout the current config into the directory puppet-config. Make any required changes to this local checkout, then commit using
bzr commit
To make the configuration live,
ssh puppet sudo update-puppet
Wait for the clients to pull the configuration (every 30 mins). Check http://puppet to view the puppet dashboard.
New Client
apt-get install puppet puppet agent --test
This should install puppet, create a new SSL certificate and try to connect to the puppetmaster. On the puppetmaster you then need to sign the certificate:
ssh puppet sudo puppet cert list
This should list the new client (this is the list of certificates waiting to be signed). If it doesn't then the client hasn't for some reason made contact.
Sign the certificate, e.g.:
sudo puppet cert sign ftp.filmsoc.warwick.ac.uk
Back to the client and again run
puppet agent --test
This time it should start pulling configuration and making changes. Run twice to make sure it's done everything. The puppet client configuration is also managed, so the second run uses the correct configuration.
BUG: Services don't seem to be restarting when required, so check puppet is running:
/etc/init.d/puppet restart
Puppet Dashboard
Puppet Dashboard (internal only) is a web application that shows the current update status of puppet clients. Configuration documentation is also found at [1].