Puppet uses a declarative, model-based approach to IT automation. This language allows an IT administrator to easily define the desired state of the infrastructure’s configuration using Puppet’s declarative configuration language. It allows an administrator to simulate configuration changes before enforcing them. It enables the enforcement of the desired state of deployed infrastructure automatically. Administrators can use this to correcting any configuration changes as well. Finally, Puppet provides reports for an administrator that can then be used to detect differences between actual and desired states and any changes made to enforce the desired state of infrastructure.