A pull model is an automation pattern in which each managed device periodically connects to a management server and retrieves its configuration. The client requests configuration instead of receiving it from a server-initiated push. section 25.2.3 section 25.2
Recognize the pattern through these characteristics:
- Use an agent-based architecture: install a software agent on every managed device. section 25.2.3
- Let managed devices independently check for and apply configuration updates. section 25.2.1
- Expect update delays because devices must check in before receiving changes. section 25.2.1
- Contrast it with push automation, which provides centralized control and immediate updates from the management server. section 25.2.1
Puppet and Chef
Puppet and Chef primarily use pull models for configuration management. Their agents connect to a central server, retrieve configuration information, and apply changes. Puppet defines desired state with Puppet DSL; Chef uses a procedural approach. section 25.2.3 section 25.3
Table 25.1 Configuration management tools (view table figure)
| Ansible |
Terraform |
Puppet |
Chef |
|
|---|---|---|---|---|
| Language |
Python |
Go |
Ruby |
Ruby |
| Configuration file format |
YAML |
HashiCorp Language (HCL) |
Puppet DSL |
Ruby |
| Communication protocol |
SSH, NETCONF |
HTTP (API) |
HTTP (API) |
HTTP (API) |
| Agent-based/agentless |
Agentless |
Agentless |
Agent-based |
Agent-based |
| Procedural/declarative |
Procedural |
Declarative |
Declarative |
Procedural |
| Push/pull |
Push |
Push |
Pull |
Pull |
Compare pull-based Puppet and Chef with push-based Ansible and Terraform across architecture, configuration style, language, and communication protocol. section 25.2



