Puppet is an open-source configuration management tool used to configure and maintain servers. It uses a master-agent model where manifests written in Puppet's declarative Ruby DSL on the master are compiled into catalogs and distributed to agents. Puppet Enterprise offers commercial support for Puppet and includes additional features like an agent for network devices, external node classifiers, and Puppet Dashboard for visualization. Modules can be written to define reusable components and Bolt can be used to run tasks across managed nodes.