I do use puppet as our main configuration management tool. Together with puppetdb all our services are automatically configured from bottom to top.

And it rocks, getting automated as much as possible it is like easy as hell to get a server up and running. The only feature it lacked in my opinion is orchestration. I do know about collective which is made for this purpose.

Only it's yet again using an agent which fails from time to time and eating resources which can be avoided. It's the same reason I don't use the puppet agent daemon but trigger puppet …