Ubuntu – How to handle Puppet version differences between linux distributions

epelpackage-managementpuppetrpmUbuntu

We're a small webdev shop that's investigating to roll out Puppet on various development and production servers.

The puppetmaster is an Ubuntu 10.04 server with Puppet 0.25.4, from Ubuntu's repo.
Some puppet clients are Ubuntu with puppet 0.25.4, but others are RedHat or Centos based and are using the EPEL repository, which supplies puppet 0.25.5 packages.

These newer clients can't talk to the 'older' puppetmaster, so I can either upgrade the master or downgrade the clients. However I'm unable to find rpm's to downgrade the clients to 0.25.4. Building my own packages is a chore that I could do without since I'm the single sysadmin in the company.

How do you deal with differing client/server versions in a heterogenous environment?

Best Answer

I'd suggest going with the latest stable puppetmasterd where you can. It will vastly simplify the process of upgrading your clients when the time comes around. Such relatively young and fast moving projects often generate minor releases for features and bugfixes quite frequently, which can prove invaluable. You should of course still read each ChangeLog diligently to pre-empt anything that might affect your environment during an upgrade.

Packaging your own version shouldn't be that difficult and it's a skill that, in the future, you should find valuable enough to take time mastering now. I've had to roll my own pre-release packages for Puppet to workaround bugs that I've run into before now.

In this particular case though, you might find that the newer packages from Debian's unstable tree will work for you. Alternatively there is even a bleeding edge PPA, if you want to, well, get cut.