Ansible is agentless and uses push-based automation for configuration management and deployment, while Puppet relies on an agent-server model with a pull-based approach, offering the advantage of better scalability and centralized control for managing large, complex infrastructures
Puppet is Ruby based with two deployment models: Master-agent (primary model) and Standalone. Standalone is usually for proof of concept purposes
The Puppet Master serves as the central server that stores configuration manifests, while Puppet Agents run on individual nodes to fetch and apply these configurations. Agents periodically connect to the master, request the desired state for their systems, and implement changes based on the manifests provided, ensuring consistent and automated configuration management across nodes