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
Slackware hasn't been requested for support, and its not one that anyone at Opscode uses, so Chef doesn't currently support Slackware (version 0.9.12). It needs two things for this to happen:
For the former, the platform plugin would need to determine somehow if the system is slackware (e.g., /etc/slackware-release contents).
For the latter, the platform specific support would be mainly for services and packages. It wouldn't be terribly difficult to add support to Chef, if you would like to open a ticket requesting this support, head to the Opscode Open Source Tickets. If you would like to contribute code to do any of this, learn how to contribute to Opscode projects.