Legacy: Chef configuration automation

Chef is a server management application that can use ServiceNow configuration item (CI) data to bring Linux or Windows computers into a desired state by managing files, services, or packages installed on physical or virtual machines.

The ServiceNowsystem can interact with Chef systems that run on Linux or Windows. The Chef server controls Chef nodes and uses a standalone utility to discover the components in the Chef environment. The system uses information about server CIs from the Chef server to classify the servers as Chef nodes. Chef then evaluates a node's current state and modifies the node to achieve the desired state.

How the Chef integration works

To access the Chef server, the ServiceNow admin configures a Chef server and sets up a Chef user. The Chef server evaluates the current and desired state of each node based on the node definition and modifies any nodes that are not in the desired state.
Using the ServiceNow system to control Chef resources allows you to maintain a single source of record within the system.
  • You can use the ServiceNow system as an external node classifier for Chef nodes.
  • Workflow activities allow you to create workflows that affect Chef behavior.
  • You can manage and automate the request and approval process when making changes to Chef resources.
Using the ServiceNowsystem to manage Chef nodes follows this process:
Figure 1. Chef Management Process

Chef terms

  • Chef servers: Hubs that store and manage Chef configuration data.
  • Node definitions: Details of the configuration items to be applied to nodes for a specific management server.
  • Recipes: The most fundamental configuration element. A recipe is a collection of resources. Each recipe is stored in a cookbook.
  • Cookbooks: The fundamental unit of configuration. After discovery, the cookbook is populated with version information and one or more recipes.
  • Chef roles: A way to define certain patterns and processes that exist across nodes. A Chef role consists of zero or more attributes and a run list. Each node can have zero or more roles assigned to it.
  • Chef attributes: Specific details about a node. Attributes are used by the Chef client to understand the current state of the node, the state of the node at the end of the previous Chef client run, and the state the node should be at the end of the current Chef client run.