Learning Puppet
Students will start by installing Puppet Enterprise, then learn Puppet best practices and use Puppet to write simple classes, and update and extend existing modules. Puppet Fundamentals is taught through a combination of lecture and relevant, real world, hands-on exercises.
Duration:
3 Days
Objectives:
After completing this course, students will be able to deploy basic system configurations using best practices for Puppet in a Master-Agent setup.
Audience:
In this course, we expect students to have little to no experience with Puppet Enterprise (or Puppet Open Source) and are looking to build a foundation for future growth, experience, and knowledge.
Introduction
- Introduction To Puppet
- About This Course
- Puppet Head First (Building A MOTD Module)
- Puppet Enterprise Stack And Core Concepts
- Nodes
Puppet Components
- Installing The Puppet Master & Learning Puppet Master Layout
- Installing The Puppet Enterprise Agent
- conf
- Resource Abstraction Layer
- Facter
- Live Management
- Catalog Compilation
Building Modules And Classes
- Module Structure & Class Naming
- Defining And Testing Our First Class
- Declaring Classes And Creating Node Definitions
- Autoloading
Puppet DSL
- DSL Overview
- Getting Started And Looking At Arrays
- Relationships And Dependencies (require/subscribe)
- Adding SSH Class To The Node Definition
- Relationships And Dependencies (before/notify)
- Conditional Statements
- Conditional Statement Best Practices
- Regular Expression If Statements
- Adding An Ubuntu Node And Testing
- Metaparameters
- Files And Resource Defaults
- Variables, Parametrization, And Scope
- Inheritance
- rvalue Functions
- Templates
- Creating The NTP Class
- Resource Collectors
- Defining Class Parameters Part 1
- Defining Class Parameters Part 2
- Class Parameters And Scope Example
- Variable/Class/Module Naming Conventions
- How Puppet Enforces Execution In A Catalog
Roles and Profiles
- Overview
- Creating A Profiles Module
- Creating A Roles Module
Hiera
- Hiera Overview
- Setting Up Our Configuration File And Data Sources
- Using Hiera By Example
Building An Apache Module
- Building The Environment And Overview
- Building The Apache Classes And Parameters
- Building The Core Classes And Resource Types
- Adding Directory Management
- Adding Defined Resource Types
- Creating The Required Templates And Testing
- Adding Multiple Virtual Host Files
Node Classification
- pp and Node Definition Matching
- External Node Classifiers
- Classifying Node With The Console
- Using Site.pp With An ENC
Puppet Management
- Common Console Tasks
- Troubleshooting
- Reporting
- Preparing Modules For Puppet Forge & Downloading Forge Modules
- Deactivating a Puppet Enterprise Agent Node
- Event Inspector
- External Facts
- Checking Values of Settings
- Puppet Resource Command
Resource Type Practice
- Host
- Resource Type Titles
- Mount