Once we introduce a tool like Puppet in our infrastructure, everything changes and we should be well aware of this.
There's a wonderful term that describes what tools like Puppet or Chef have introduced in IT operations: infrastructure as code. We define our IT infrastructure with formal code, the configurations of our servers, the procedures to set them up, and whatever is needed to turn a piece of bare metal or a blank VM to a system that provides services for our purposes.
When we can use a programming language to configure our systems, a lot of powerful collateral effects take place. These are inherently related to the fact that we are dealing with code.
Code can be versioned with an SCM. The history ...