Configuration management is a set of methodologies and rules used to keep track of the current build state and design of a system. It is used to keep a record of the performance, functions, design, and operational information of any system.
Now, coming to Puppet, it is a configuration management technology that is available as both open-source and enterprise versions. It is developed by Puppet Labs and written in Ruby DSL (domain-specific language). Puppet runs on UNIX-like and Windows systems and is used to manage the configuration of those systems. Puppet supports Ruby and its own Puppet declarative language
You can refer this blog or video tutorial for further clarifications.
hope this helped .. cheers!