Puppet Developer Certification

Important Information

The Puppet Developer certification exam has been being retired as of September 30, 2014. For those individuals that hold the Puppet Developer certification, your certification does not expire. If you have any questions please contact us at certification@puppetlabs.com.

The Puppet Developer Certification validates skills and competencies for developers who wish to expand their Puppet solution by developing extensions for Puppet in Ruby.

Exam Overview

  • Retired Date: September 30, 2014
  • Exam Name: Puppet 301 – Developing for Puppet Using Ruby
  • Exam Format: Computer-based exam composed of 60 multiple-choice questions
  • Exam Time: 90 minutes
  • Exam Code: PPT-301
  • Exam Cost: $200 USD
  • Version: Puppet Open Source 2.7.12 and later, and Puppet Enterprise 2.5 and later
  • Products/technologies tested: Puppet Enterprise, Puppet Open Source, Ruby v1.8.7 as it pertains to Puppet, and MCollective

Certification Overview

  • Credential Awarded: Puppet Developer 2013 Certification
  • Individual Recognition: Puppet Certified Developer
  • Certification Code: PCD

Puppet Developer - Qualified Candidate

A qualified candidate for the Puppet Developer Certification will be able to extend Puppet Labs IT automation software using Ruby and have a general understanding of the declarative nature of Puppet. In addition to the required hands-on experience with Ruby programming and Puppet IT automation software, it is recommended that the candidate take the following Puppet Education courses:

or have the equivalent experience before taking this exam. Candidates need to have experience developing solutions using Puppet Labs software and extending Puppet using Ruby programming, be familiar with relevant Puppet Labs documentation, be familiar with accepted practices as documented in the Puppet Labs Style Guide, and have familiarity with maintaining OS environments such as UNIX and Linux.

Exam Objectives

Puppet Facts

  • Identify the role of a custom fact
  • Describe the Facter API

Puppet Functions

  • Identify the operation of a function
  • Identify how scope affects custom functions

Puppet Types and Providers

  • Describe type and provider interaction
  • Describe how providers are declarative
  • Describe the use cases of special type methods
  • Describe the use cases of special provider methods

Puppet Report Processors

  • Describe the development of a report handler
  • Identify the Puppet::Transaction::Report data object

Puppet Faces

  • Describe how to interact with Puppet Faces
  • Describe how to develop Puppet Faces

Ruby Testing

  • Describe stubbing and expects
  • Identify RSPEC testing patterns

Puppet Integration

  • Identify Puppet plugin locations
  • Identify how to document Puppet plugins
  • Identify the purpose of Puppet indirection


  • Identify the components used by MCollective
  • Demonstrate knowledge of how to write an MCollective plugin

Recommended Preparation Resources