So say you're using puppet. Initially you might use the puppet server to set it up with a puppet agent to setup your server (you might, then again you might use images, but I'm using puppet).
Let's say that the initial provisioning goes well and then you decide you need to add some more settings to your server; but you don't want to re-provision it completely; wipe out the database on the system and start from scratch; instead you'd rather add the settings, perhaps remove some old ones, and then restart your daemon (which to be fair, may already be done by puppet)
a. Comment out the initial provisioning code before running
b. Set a variable that can used by the code to prevent it from being re-provisioned?
How is this situation properly handled? Because handling it wrong seems likely to lead to disaster (recovery).