Puppet
by Andrew Shafer, works for Reductive Labs
Code, Tribes, Dawn of Time, Clouds, evolution, opportunity, and triumph
It’s difficult to automate the download ruby gems because the URL paths are
not friendly. Isn’t it interesting that RubyForge.org uses PHP to run?
Idempotence: an important property to have
He likes Debian’s setup of apache. It’s easier to work with for setting up
multiple sites than the way most Linux distributions do it.
He showed several examples of using Puppet to install packages from gem
repositories and packages.
How do you test your puppet deployment code? The best he’s come up with is to
use RSpec to make sure a machine is in the correct configuration, and run
continuous integration tests on it with your puppet code.
The Cloud. Anyone can bring up a server for 10 cents per hour, and when you’re
done, you turn it off.
Conversation with the audience:
Things get complicated when you’re using puppet to manage deployment to
different distributions or even platforms. E.g. Debian has two packages for
something that is a single package on another. The only way to make sure your
puppet deployment works is to try it and make sure the machine is in the
correct state afterward.
Does puppet help you to remove packages? Some providers purge unrequested
packages. It’s hard to back out a messed up install, and is easier to start
over with a clean slate.