What is the difference between Chef and Puppet in configuration management software? Is it possible to take a snapshot of a server using configuration management tools like CHEF/PUPPET/ANSIBLE? If yes, how?