I don't understand why more people don't use bcfg2. Its awesome for this purpose (and I think better than puppet or chef.)
Firing off a bcfg2 push would take almost 20 minutes, which was pretty unusable; The big problem was that it didn't handle large numbers of connections simultaneously well, so I ended up having to stagger them.
CFengine was able to do the same push in < 30 seconds. Win.
I'll be looking at Chef again in the near future. It's got a LOT of nice features; Hopefully we can make it scale out quickly.