Puppet works by having a server (the Puppet Master) that stores the configuration information for all of the nodes (the clients) it manages. The nodes periodically check in with the Puppet Master to see if there have been any changes to their configuration. If there have been changes, the Puppet Master sends the updated configuration information to the node, which then applies the changes.
For example, let’s say you have a Puppet Master server and two nodes. The Puppet Master has the configuration information for both nodes, including which packages should be installed on each node, what users should be created, and so on. The nodes periodically check in with the Puppet Master to see if any changes have been made to their configuration. If the Puppet Master detects a change, it sends the updated configuration information to the node, which then applies the changes. In this way, the nodes are kept up to date with the latest configuration information from the Puppet Master.