All courses
All courses
Course categories
Contact us

Puppet Essentials, 3 days

Delivered at your office or a training centre, in groups or 1-2-1

This course provides the necessary skills and techniques to install Puppet Master and Agent in order to carry out configuration management effectively.

Check availability in your area…

Key features

  • Live instructor-led course with 18 hours of training
  • Session runs from 9.30–5pm with normal breaks included
  • Fully certified trainer
  • Get key skills and practical knowledge
  • This course is available for delivery at your office, 1-2-1 and groups – contact us
  • Course materials included
  • Recognised course certificate

What will I learn?

The course is presented as a mixture of lectures and hands-on exercises.

Exercises are provided for both the Enterprise and Open Source versions of Puppet.

Introduction to Configuration Management

Why do we need Configuration Management?
What are the components of Configuration Management?
What are the benefits of Configuration Management?
What is the Configuration Management life cycle?
What are the common tools for Configuration Management?
Puppet Overview

Puppet Enterprise stack and features
Model based approach
Composable configurations
Lifecycle of a puppet run
Puppet component roles (master / agent)
Master / agent architecture
Puppet Components

Describing and maintaining state
Infrastructure as code
Live management
Facter, Hiera and Puppet forge
Managing assets with Git

Source Control
Version Control
Centralised and Distributed Version Control Systems
GIT Basics
Choosing a DVCS
The SSH Protocol
Resources and Providers

Puppet resources
Resource declarations
Declarative Modelling Language
Resource Abstraction Layer
Modules and Classes

Puppet Classes
Puppet Modules
Module Directory Structure
Namespaces and Auto-loading
Defining and Declaring Classes
Testing Classes
Using Puppet Without a Master

Puppet Usage Patterns
Masterless Puppet - in short
Benefits of going 'Masterless'
What would you have to do?
Problems with going 'Masterless'
Deploying Your Code to the Puppet Master

A Git to Puppet Workflow
Git and Puppet Master
Single or Multiple Repositories?
Managing Multiple Masters
Testing Puppet

Syntax checking
The Smoke test
Simulating change with Puppet
Module testing frameworks
Unit testing modules
Test Driven Development - TDD
Using Puppet Forge

Puppet Forge
Using the Puppet Forge online
The puppet module tool - PMT
Search for modules
Install a module from Puppet Forge
Uninstall a module
Publish a module to the Puppet Forge

What is Classification?
Node Definitions: site.pp
Regular Expressions in Node Definitions: site.pp
Console Classification

So glad we switched from our old provider as your courses are totally hands on, just what we needed”

Ahmed K

Console Classification - Node Definitions
Console Classification - Node Groups

What are Environments?
Environment Directory Structure
Configure Puppet Master to use Directory Environments
Global Settings for Configuring Environments
Assign Nodes to their environments
Preconfigured Node Groups
Environment-based Workflow
Live management

What is Live Management?
Inspect node Resources
Control Puppet
ERB templates

Use cases for ERB Templates
Using templates
Using Puppet variables
Defining Puppet variables
ERB Conditions
Resources in depth

Resource type origins
Resource type categories
Meta resource types
Resource type documentation
title and namevar
Resource relationships

Resource relationships
Dependency management
Implicit dependencies
DSL - Domain Specific Language

Using Puppet variables (facts)
Defining local variables
Using variables
Variable scope
Strings and arrays
Conditional expressions: if, selectors, case, unless
Statements and functions
Parametrised types

Parameterised Classes and Inheritance
Defining a Parameterised Class
Declaring a Parameterised Class
Assigning Parameters in the PE Console
Class Inheritance - base class declaration
Class Inheritance - sub class declaration
Class Inheritance - Best Practice
Defined resource types

Defining and Declaring a Defined Type
Module Directory Structure

What is Hiera?
Why use Hiera?
Configuring Hiera
Yaml file locations
Sample data files
Automatic data bindings
Explicit Hiera lookup
Testing Hiera

What is PuppetDB?
What is stored in PuppetDB?
How is PuppetDB accessed?
Example queries
PuppetDBquery module

Troubleshooting Puppet classes and Modules
Troubleshooting Puppet Installations
Puppet Best Practices

Using Modules
Version Control
Naming Conventions
Classes Vs Defined Types


Download course details as a PDF

Interested in this course? Get in touch...

01225 308979


Find us at:
Go Courses Ltd.
Kemp House
152 - 160 City Road
United Kingdom

Registered Office:
Go Courses Ltd.
10 Laura Place
United Kingdom

View on a map

Delighted satisfaction rating