1. Puppet Master: Puppet Master is the central server that manages all Puppet nodes. It is responsible for compiling catalogs and distributing them to the Puppet nodes. Example: Puppet Enterprise.
2. Agent: Puppet Agent is a software package that runs on Puppet nodes and communicates with the Puppet Master. It is responsible for applying the catalogs to the nodes. Example: Puppet Agent.
3. Puppet Language: Puppet Language is a declarative language used to define system configurations. It is used to write manifests and modules that are applied to the nodes. Example: Puppet DSL.
4. Puppet Forge: Puppet Forge is a repository of Puppet modules and manifests that can be used to quickly configure nodes. Example: Puppet Forge.
5. Facter: Facter is a library that collects system information from nodes. It can be used to determine the node’s operating system, hardware, and other information. Example: Facter.
6. Hiera: Hiera is a data lookup tool that can be used to store configuration data in a hierarchy. It is used to provide node-specific data to the Puppet Master. Example: Hiera.