Chef, Puppet & Salt
The config-management landscape.
Ansible is the most popular configuration-management tool today, but it is one of four you will hear about, and knowing how they differ helps you read existing setups and choose for a new one. The big distinction is agent vs agentless and push vs pull: Ansible is agentless and push-based (a control node pushes config over SSH), while Chef, Puppet, and Salt traditionally use an agent on each host that pulls its configuration from a central server. Each philosophy has tradeoffs in scale, complexity, and how quickly changes propagate.
Agent-based: Puppet and Chef
Puppet and Chef predate Ansible and are built around an agent on every node that periodically pulls its desired configuration from a central server and enforces it continuously — so drift is corrected automatically on each run, even without a human triggering it. Puppet uses its own declarative language; Chef uses Ruby-based "recipes" and "cookbooks." The agent/pull model scales well to thousands of nodes and gives continuous enforcement, at the cost of running and securing that agent and central server. You will meet them in established enterprises.
Salt, and how to choose
Salt (SaltStack) uses YAML like Ansible but adds a fast message bus for near-real-time command execution across huge fleets, and can run agent-based or agentless. For choosing: Ansible is the easiest to adopt and dominates new projects because there is no agent to manage; Puppet/Chef suit large, long-lived estates that want continuous pull-based enforcement; Salt suits very large fleets needing fast, event-driven control. Most teams today reach for Ansible unless they have a specific reason not to — which is why this course teaches it as the default.