Puppet

From Warwick Student Cinema
Jump to: navigation, search


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].