Configuration management
What Ansible and Terraform provide: declarative intent, idempotence, and push versus pull orchestration at CCNA depth.
Configuration management tools declare the desired state of systems and enforce it repeatedly. The CCNA names Ansible and Terraform; Chef and Puppet are the usual distractors. The key concepts: declarative intent, idempotent application, and a push or pull delivery model.
Tool comparison at blueprint depth
| Property | Ansible | Terraform |
|---|---|---|
| Model | Push — runs tasks over SSH/agentless | Client → provider APIs |
| Language | YAML playbooks | HCL declarative configs |
| State | Stateless (no central state file) | Tracks managed state in a state file |
| Focus | Config + orchestration on devices/servers | Provisioning infrastructure resources |
| Idempotent? | Yes — modules check before changing | Yes — plan shows only needed changes |
Idempotent means running the same task twice produces the same result — a property tools strive for, not a guarantee: an imperative script can be written idempotent and a declarative module can misbehave. A declarative file says *what* should exist, not *how* to change things; the tool diffs desired vs actual and applies only the delta. Chef/Puppet work on the same declarative principle with agents that pull their desired state.
Push versus pull
| Model | How it works | Example |
|---|---|---|
| Push | Controller initiates changes to targets | Ansible playbook run |
| Pull | Agents check in and fetch their config | Puppet/Chef agents |
Related resources
Sources
- Cisco CCNA 200-301 v1.1 Exam Topics (official PDF) — reviewed 2026-11-02
Targets CCNA 200-301 v1.1 objectives. Supplemental blocks are labeled beyond exam scope.