Puppet is an automation tool that uses a master-agent architecture to configure and report on nodes. The Puppet master stores configuration templates (manifests) and compiles them into a catalog for each agent based on facts collected from the node. The agent downloads the catalog and any plugins and uses local methods to apply the configuration. Cisco's onePK provides a manageability layer that allows Puppet to configure Cisco devices by running as an agent inside a Linux container on the device OS, avoiding direct CLI access.