Using Chef Client with Cisco NX-OS

This chapter includes the following sections:

About Chef

Chef is an open-source software package developed by Chef Software, Inc. It is a systems and cloud infrastructure automation framework that deploys servers and applications to any physical, virtual, or cloud location, no matter the size of the infrastructure. Each organization is comprised of one or more workstations, a single server, and every node that will be configured and maintained by the chef-client. Cookbooks and recipes are used to tell the chef-client how each node should be configured. The chef-client, which is installed on every node, does the actual configuration.

A Chef cookbook is the fundamental unit of configuration and policy distribution. A cookbook defines a scenario and contains everything that is required to support that scenario, including libraries, recipes, files, and more. A Chef recipe is a collection of property definitions for setting state on the device. The details for checking and setting these property states are abstracted away so that a recipe may be used for more than one operating system or platform. While recipes are commonly used for defining configuration settings, they can also be used to install software packages, copy files, start services, and more.

The following references provide more information from Chef:

Topic

Link

Chef home

https://www.chef.io

Chef overview

https://docs.chef.io/chef_overview.html

Chef documentation (all)

https://docs.chef.io/

Prerequisites

The following are prerequisites for Chef:

  • You must have a Cisco device and operating system software release that supports the installation:

    • Cisco Nexus 3500 Series switch

    • Cisco NX-OS Release 6.1(2)I3(4) or higher

  • You must have the required disk storage available on the device for Chef deployment:

    • A minimum of 500 MB free disk space on bootflash

  • You need a Chef server with Chef 12.4.1 or higher.

  • You need Chef Client 12.4.1 or higher.

Chef Client NX-OS Environment

The chef-client software must be installed on Cisco Nexus platforms. Customers can install chef-client in one of the Linux environments provided by the Cisco Nexus platform:

  • Bash Shell—This is the native WindRiver Linux environment underlying Cisco NX-OS.

  • Guest Shell—This is a secure Linux container environment running CentOS. Its advantage is a secure, open execution environment that is decoupled from the host.

The workflow for both use cases is similar.

The following documents provide step-by-step guidance on agent software download, installation, and setup:

Topic

Link

Chef Client (Native)

Latest information on Client RPM is available here.

Chef Client (Guest Shell, CentOs7)

Latest information on Client RPM is available here.

Chef Client: Installation and setup on Cisco Nexus platform (manual setup)

cisco-cookbook::README-install-agent.md

Chef Client: Installation and setup on Cisco Nexus platform (automated installation using the Chef provisioner)

cisco-cookbook::README-chef-provisioning.md

cisco-cookbook

cisco-cookbook is a Cisco-developed open-source interface between the abstract resources configuration in a Chef recipe and the specific implementation details of the Cisco Nexus operating system and platforms. This cookbook is installed on the Chef Server and is required for proper Chef Client operation on Cisco Nexus devices.

cisco-cookbook can be found on Chef Supermarket.

The following documents provide additional detail for cisco-cookbook and generic cookbook installation procedures:

Topic

Link

cisco-cookbook location

https://supermarket.chef.io/cookbooks/cisco-cookbook

Resource Type Catalog

https://github.com/cisco/cisco-network-chef-cookbook#resource-by-tech

cisco-cookbook: Source Code Repository

https://github.com/cisco/cisco-network-chef-cookbook

cisco-cookbook: Setup and usage

cisco-cookbook::README.md

Chef Supermarket

https://supermarket.chef.io

NX-OS developer landing page.

Configuration Management Tools