Chef Fundamentals
Chef is a configuration management tool that defines infrastructure as Ruby-based code called recipes and cookbooks. It converges systems toward a declared desired state, ensuring consistent configuration across servers whether they number ten or ten thousand.
itInfrastructure and operations | OpenSkills.info
Intro
Chef Fundamentals
Chef Infra manages system configuration as code. You describe the state a node should have, and Chef Infra Client moves that node toward the described state. A package should be installed. A file should contain approved content. A service should be enabled and running.
The central idea is convergence. Chef Infra Client compares each resource declaration with the current node. It changes the node only when the declared state is not already present. Repeated runs should reach the same final state without repeating unnecessary work.
Chef is useful when you manage many long-lived systems that must follow consistent policy. It gives configuration changes the same review, testing, and version-control practices as application code. It can also correct configuration drift during later runs.
The operating model
A typical Chef Infra installation has three main parts:
- Chef Workstation is where you author and test policy.
- Chef Infra Server stores cookbooks, policies, and node metadata.
- Chef Infra Client runs on managed nodes and applies policy locally.
A managed system is a node. During a client run, Chef Infra Client collects node details with Ohai, authenticates to Chef Infra Server, and retrieves its policy. It then compiles a resource collection and converges the node.
The pull model matters. Nodes normally contact Chef Infra Server on a schedule. The server distributes policy, but the client performs most configuration work on the node. A temporary network interruption can delay retrieval without changing the policy already assigned to that node.
Continue the course
This section is part of the paid course.
See pricing to subscribe, or log in if you already have access.
Where this skill leads
Relevant careers
See how this topic contributes to broader role-level skill maps.
Sources
- https://docs.chef.io/client/18/overview/chef_overview/
Supports
- Chef Infra purpose and desired-state model
- Workstation, Server, Client, node, cookbook, recipe, run-list, and Ohai relationships
- Scheduled client execution and local configuration on managed nodes
- Ruby as the cookbook authoring language
- Repeated recipes reaching the same system state when inputs and state are unchanged
- https://docs.chef.io/client/19/
Supports
- Chef Infra Client as the node-local agent
- Pull-based operation
- Client-run stages from configuration and authentication through compilation, convergence, handlers, and reporting
- Node, cookbooks, recipes, run-list, and Ohai definitions
- Agentless execution over secure shell
- Configuration management, deployment, compliance, drift prevention, and environment-management uses
- https://docs.chef.io/client/19/infra_language/
Supports
- Chef Infra Language as a Ruby-based systems configuration language
- Resources as desired-state declarations
- Built-in resources and helpers for operating-system configuration
- https://docs.chef.io/client/18/resources/
Supports
- Resource type, name, properties, and action model
- Resources grouped into recipes
- Guards and notifications as common resource features
- Idempotent resource behavior
- https://docs.chef.io/client/19/resources/bundled/
Supports
- Current bundled resource catalog
- Guard execution behavior
- Notification timers before, delayed, and immediate
- Difference between notifies and subscribes when a referenced resource is absent
- https://docs.chef.io/policyfile/
Supports
- Policyfile contents and purpose
- Immutable collections of cookbooks, dependencies, and attributes
- Policyfile lock content and workstation-side dependency resolution
- Policy names, policy groups, upload, and promotion
- Mutability limits of traditional role and environment workflows
- https://docs.chef.io/workstation/25/
Supports
- Workstation tool set
- chef, knife, Test Kitchen, Chef InSpec, and Cookstyle purposes
- Recommended cookbook development, testing, acceptance, and deployment flow
- https://docs.chef.io/workstation/kitchen/
Supports
- Test Kitchen as an isolated cookbook test harness
- Instance creation, convergence, verification, and destruction lifecycle
- https://docs.chef.io/workstation/cookstyle/
Supports
- Cookstyle checks for style, syntax, and logic issues in Chef Infra cookbooks
- https://docs.chef.io/platforms/
Supports
- Commercial, community, derived, and unsupported platform distinctions
- Need to confirm supported operating systems and architectures
- https://docs.chef.io/versions/
Supports
- Chef Infra Client 19 as the current long-term-support release at verification time
- Product lifecycle and supported-version checks
- https://docs.chef.io/licensing/
Supports
- Distribution and runtime-workflow licensing requirements
- End User License Agreement acceptance requirements
- Apache License coverage for identified open-source project source code
