Puppet Essentials

4 Day Course
Hands On
Code QAPUPPETESS

Book Now - 1 Delivery Method Available:

Classroom Virtual Classroom Private Group - Virtual Self-Paced Online

Overview

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

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.

Objectives

Delegates will learn how to:

  • Install and configure Puppet Enterprise
  • Install and configure Puppet Agent
  • Describe the key components of Puppet including Hiera and Facter
  • Write classes comprising desired resources for a node
  • Test their Puppet configurations
  • Use Puppet to configure multiple web servers

Training Partners

We work with the following best of breed training partners using our bulk buying power to bring you a wider range of dates, locations and prices.

Modules

Hide all

Introduction to Configuration Management (5 topics)

  • 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 (6 topics)

  • 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 (6 topics)

  • Describing and maintaining state
  • Infrastructure as code
  • Idempotency
  • Resources
  • Live management
  • Facter, Hiera and Puppet forge

Managing assets with Git (7 topics)

  • Source Control
  • Version Control
  • Centralised and Distributed Version Control Systems
  • GIT as a DVCS
  • GIT Basics
  • Choosing a DVCS
  • The SSH Protocol

Resources and Providers (5 topics)

  • Puppet resources
  • Resource declarations
  • Declarative Modelling Language
  • Resource Abstraction Layer
  • Providers

Modules and Classes (6 topics)

  • Puppet Classes
  • Puppet Modules
  • Module Directory Structure
  • Namespaces and Auto-loading
  • Defining and Declaring Classes
  • Testing Classes

Using Puppet Without a Master (5 topics)

  • 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 (4 topics)

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

Testing Puppet (7 topics)

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

Using Puppet Forge (7 topics)

  • 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

Classification (6 topics)

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

Environments (7 topics)

  • 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 (3 topics)

  • What is Live Management?
  • Inspect node Resources
  • Control Puppet

ERB templates (5 topics)

  • Use cases for ERB Templates
  • Using templates
  • Using Puppet variables
  • Defining Puppet variables
  • ERB Conditions

Resources in depth (6 topics)

  • Resource type origins
  • Resource type categories
  • Meta resource types
  • Resource type documentation
  • Metaparameters
  • title and namevar

Resource relationships (3 topics)

  • Resource relationships
  • Dependency management
  • Implicit dependencies

DSL - Domain Specific Language (7 topics)

  • 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 (7 topics)

  • 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 (2 topics)

  • Defining and Declaring a Defined Type
  • Module Directory Structure

Hiera (8 topics)

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

PuppetDB (6 topics)

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

Troubleshooting (2 topics)

  • Troubleshooting Puppet classes and Modules
  • Troubleshooting Puppet Installations

Puppet Best Practices (6 topics)

  • Using Modules
  • Version Control
  • Naming Conventions
  • Style
  • Classes Vs Defined Types
  • Roles and Profiles

Other Configuration Management Tools (4 topics)

  • Managing AWS services with the AWS CLI
  • Configuring Servers using Kickstart
  • Provisioning Infrastructure with Foreman and Puppet
  • Preparing operating systems using Cobbler

Prerequisites

Before attending this course, students must have:

  • Experience in using the command line
  • Some familiarity with Linux (or similar) concepts
  • Experience with a text editor such as vi
  • A basic understanding of services and host file entries

Course PDF

Print

Share this Course

+1
Share

Recommend this Course

Sections