Puppet Agent

This chapter includes the following sections:

About Puppet

The Puppet software package, developed by Puppet Labs, is an open source automation toolset for managing servers and other resources. The Puppet software accomplishes server and resource management by enforcing device states, such as configuration settings.

Puppet components include a puppet agent which runs on the managed device (node) and a Puppet Master (server). The Puppet Master typically runs on a separate dedicated server and serves multiple devices. The operation of the puppet agent involves periodically connecting to the Puppet Master, which in turn compiles and sends a configuration manifest to the agent. The agent reconciles this manifest with the current state of the node and updates state that is based on differences.

A puppet manifest is a collection of property definitions for setting the state on the device. The details for checking and setting these property states are abstracted so that a manifest can be used for more than one operating system or platform. Manifests are commonly used for defining configuration settings, but they also can be used to install software packages, copy files, and start services.

More information can be found from Puppet Labs:

Puppet Labs

https://puppetlabs.com

Puppet Labs FAQ

https://puppet.com/products/faq

Puppet Labs Documentation

https://puppet.com/docs

Prerequisites

The following are prerequisites for the Puppet Agent:

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

    • Cisco Nexus 3500 Series switch

    • Cisco Nexus 3100 Series switch.

    • Cisco Nexus 3000 Series switch.

    • Cisco NX-OS release 7.0(3)I2(1) or later.

  • You must have the required disk storage available on the device for virtual services installation and deployment of Puppet Agent.

    • A minimum of 450MB free disk space on bootflash.

  • You must have Puppet Master server with Puppet 4.0 or later.

  • You must have Puppet Agent 4.0 or later.

Puppet Agent NX-OS Environment

The Puppet Agent software must be installed on a Cisco Nexus platform in the Guest Shell (the Linux container environment running CentOS). The Guest Shell provides a secure, open execution environment that is decoupled from the host.

Starting with the Cisco NX-OS Release 9.2(1), the Bash-shell (native WindRiver Linux environment underlying NX-OS) install of Puppet Agent is no longer supported.

The following provides information about agent-software download, installation, and setup:

Puppet Agent: Installation & Setup on Cisco Nexus switches (Manual Setup)

https://github.com/cisco/cisco-network-puppet-module/blob/develop/docs/README-agent-install.md

ciscopuppet Module

The ciscopuppet module is a Cisco developed open-source software module. It interfaces between the abstract resources configuration in a puppet manifest and the specific implementation details of the Cisco Nexus NX-OS operating system and platform. This module is installed on the Puppet Master and is required for puppet agent operation on Cisco Nexus switches.

The ciscopuppet module is available on Puppet Forge.

The following provide additional information about the ciscopuppet module installation procedures:

ciscopuppet Module location

(Puppet Forge)

https://forge.puppetlabs.com/puppetlabs/ciscopuppet

Resource Type Catalog

https://github.com/cisco/cisco-network-puppet-module/tree/master#resource-by-tech

ciscopuppet Module: Source Code Repository

https://github.com/cisco/cisco-network-puppet-module/tree/master

ciscopuppet Module: Setup & Usage

Cisco Puppet Module::README.md

Puppet Labs: Installing Modules

https://docs.puppetlabs.com/puppet/latest/reference/modules_installing.html

Puppet NX-OS Manifest Examples

https://github.com/cisco/cisco-network-puppet-module/tree/master/examples

NX-OS developer landing page.

Configuration Management Tools