Programmatic Provisioning with Puppet Enterprise, Razor, and Cisco UCS

Guest Blogger: David Soper, Technical Marketing Engineer

The new integration of UCS Manager with Puppet delivers rapid bare metal provisioning all Cisco UCS systems in just a few steps.

Infrastructure as Code Meets Configuration Automation

Cisco UCS systems were designed from their beginning over seven ago to provide best in class software-defined infrastructure.  Every system is managed by UCS Manager, and there are programmatic interfaces to all components. UCS truly is “infrastructure as code”.   Treating infrastructure as code has many of benefits, including faster configuration workflows and faster application life cycles overall.

One of the leading tools for DevOps configuration management is Puppet Enterprise.  Since 2005, Puppet has become one of the industry’s most important, de facto standards for IT automation and management.  Puppet Enterprise’s extensible plug-in architecture and powerful declarative language provides a flexible, easy to use platform that seamlessly integrates the unique capabilities of Cisco’s UCS and Nexus solutions.  (Oh, and by the way, you can run a fully functional Puppet Enterprise on up to 10 nodes for free!)

To complete the trifecta with Cisco UCS and Puppet Enterprise for programmatic end-to-end infrastructure as code, the Puppet Razor module is used for bare metal provisioning.  Razor’s open source heritage makes it highly customizable and superior to the more cumbersome menu driven approaches of typical Preboot eXecution Environment (PXE) based systems.

See The Solution in Action

Seeing is believing, so I developed this demo video to show you how the end-to-end infrastructure definition, provisioning, and workload configuration management work seamlessly together.  There’s also a whitepaper on the solution which further explains how combining Cisco UCS with Puppet Enterprise and Razor allows for fast and flexible definition and management of a complete infrastructure as code solution.

How The Solution Works

The UCS management framework is policy and model driven. It supports the entire UCS portfolio: UCS blade and rack servers, the UCS Mini, HyperFlex hyperconverged infrastructure and the C3260 composable infrastructure. It features an open API that serves as a unified control plane for all the physical and logical components in each UCS system.

The API facilitates a rich set of integrations that enable extensions beyond the physical infrastructure.  In addition to the new integration with Puppet Enterprise, UCS supports a broad ecosystem of tools and integrations to help automate routine processes.  There’s also a Python SDK  for customization. This allows IT organizations to dramatically reduce the time and costs associated with provisioning, administration, and deployment.  UCS management helps extend investments in existing tools and processes, so each organization can implement DevOps methodologies in a manner that minimizes disruptions and additional costs.

Here are a few highlights of the solution:

Day zero configuration and server role assignment with UCS Service Profiles

An integral part of UCS programmability is the Service Profiles which provide identity for the infrastructure.  The infrastructure elements are stateless, and the network, storage. and server profiles create the identity for each of these elements through UCS Manager.  UCS’s combination of a model driven architecture plus Service Profiles enables safe, fast automation.

For additional customization, there is the Cisco UCS Python SDK on GitHub with a comprehensive set of Python SDK sample code to help you automate infrastructure as code with Cisco UCS.

Day one rapid provisioning with Razor

Razor provides a rich set of programmatic interfaces for provisioning including fine grained control of the target OS (Red Hat, Windows, etc.) and target workload (the server’s “role”).  UCS Service Profiles allow for upfront, flexible definition of the intended server role which is passed automatically to Razor.

Razor seamlessly integrates with Puppet Enterprise and provisioned nodes are immediately brought under management.

Day 2 and beyond management and monitoring with Puppet Enterprise

Puppet Enterprise can install and manage all aspects of a target workload with information passed up from UCS Service Profiles.  This allows for upfront definition of a target OS and workload which is automatically provisioned and brought into the desired state by Puppet Enterprise.

Puppet Enterprise’s rich set of modules allows for a wide range of managed workloads across all major OS, virtual machine, and containerized environments.

For additional information:

Checkout the Puppet Enterprise and Razor on UCS Communities page

Download the Puppet – UCS Manager white paper