Puppet Developer Certification
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
Exam name: Puppet 301 Beta – Developing for Puppet Using Ruby
Exam format: Computer-based exam composed of approximately 191 multiple-choice questions
Exam time: 4.5 hours
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
Note: This is a beta exam
To assist Puppet Labs in establishing exam scoring for the Puppet Developer Certification, we are inviting Puppet developers to take the beta version of the Puppet 301 – Developing for Puppet Using Ruby exam. The beta version of the exam is slightly different than the final exam, as we ask candidates to test more questions than what will be presented on the final exam. Candidates may achieve certification after taking a beta exam if it is determined that they meet the passing score once one is established. However, exam scoring will not be immediate and candidates should expect to receive results approximately 6-8 week after beta testing has closed.
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: Puppet Fundamentals course (Puppet 100) and Developing for Puppet course, 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
MCollective
- Identify the components used by MCollective
- Demonstrate knowledge of how to write an MCollective plugin
Recommended Preparation Resources
- Puppet Fundamentals for System Administrators (formerly Puppet Master course)
- Developing for Puppet
- Puppet Enterprise Users Guide (2.6)
- Pro Puppet by James Turnbull and Jeffrey McCune