Puppet (I'm pretty sure chef does also) ties in with your apt-get/yum software repositories. Since they do the heavy lifting of figuring out which packages are available, that means ensure => latest
just works for Ubuntu/CentOS/Debian the like. As long as you set up the appropriate files correctly (/etc/apt/sources.list
, etc).
Both Puppet and Chef can do what you want just fine. Your best is going to be to start doing what you're trying to do and decide which tool you like the best. I think the big questions you have to have to ask is:
Do you want a DSL? - Chef recipes are written in ruby, puppet has a DSL. Whether a DSL is good or a bad choice is one of the biggest differences between chef and puppet. The link you posted to bitfield consulting's comparison has some good comments about this you should read if you haven't already. I also found this blog post useful, make sure you read the comments too.
Do you know ruby? - If you don't know ruby, getting started with chef can be harder or require a larger investment of time since you need to learn a new language. Puppet has its own language which is easy to get started with. Starting with puppet 2.6, manifests can be written in ruby too.
At the Open Source Bridge in 2009, they had a panel of the authors and representatives of chef, puppet, bcfg2, cfengine, and automateit which you can watch on bliptv which has 1.75 hours of discussion about configuration management utilities.
Opscode/Chef talks about the difference between it and puppet in their FAQ as well.
I think your not knowing the right questions to ask might stem from you not having too much experience working with either of them, once you start using them you'll start seeing the differences between them. I'd suggest coming with some real life problems you will solve with chef or puppet, then start trying to solve them and see what you like/dislike about them. With Opscode/Chef, they offer a hosted solution that you can set up 5 nodes for free to get started.
Best Answer
For puppet you would need