Chef is an infrastructure-as-code tool for configuration management. It defines infrastructure configuration through Ruby and primarily uses a procedural approach, specifying how configuration should be applied. section 25.2 section 25.3
Chef’s operational profile includes:
- Ruby implementation and Ruby configuration format. section 25.2
- Agent-based architecture, requiring software agents on managed devices. section 25.2 section 25.3
- Pull communication model, in which managed devices retrieve configuration from a management server. section 25.2.3 section 25.3
- HTTP API communication between the management system and managed devices. section 25.2
- Configuration-management focus, contrasting with Terraform’s infrastructure-provisioning emphasis and Ansible’s procedural, agentless push model. section 25.2 section 25.3
