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.
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
Learning Outcomes
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
Course Outline
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
- Idempotency
- Resources
- Live management
- Facter, Hiera and Puppet forge
Managing assets with Git
- 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
- Puppet resources
- Resource declarations
- Declarative Modelling Language
- Resource Abstraction Layer
- Providers
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
- Virtualisation
- 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
Classification
- 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
- 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
- Metaparameters
- 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
Hiera
- What is Hiera?
- Why use Hiera?
- Configuring Hiera
- Yaml file locations
- Sample data files
- Automatic data bindings
- Explicit Hiera lookup
- Testing Hiera
PuppetDB
- What is PuppetDB?
- What is stored in PuppetDB?
- How is PuppetDB accessed?
- Example queries
- Dashboards
- PuppetDBquery module
Troubleshooting
- Troubleshooting Puppet classes and Modules
- Troubleshooting Puppet Installations
Puppet Best Practices
- Using Modules
- Version Control
- Naming Conventions
- Style
- Classes Vs Defined Types
- Roles and Profiles
Other Configuration Management Tools
- Managing AWS services with the AWS CLI
- Configuring Servers using Kickstart
- Provisioning Infrastructure with Foreman and Puppet
- Preparing operating systems using Cobbler
Frequently asked questions
How can I create an account on myQA.com?
There are a number of ways to create an account. If you are a self-funder, simply select the "Create account" option on the login page.
If you have been booked onto a course by your company, you will receive a confirmation email. From this email, select "Sign into myQA" and you will be taken to the "Create account" page. Complete all of the details and select "Create account".
If you have the booking number you can also go here and select the "I have a booking number" option. Enter the booking reference and your surname. If the details match, you will be taken to the "Create account" page from where you can enter your details and confirm your account.
Find more answers to frequently asked questions in our FAQs: Bookings & Cancellations page.
How do QA’s virtual classroom courses work?
Our virtual classroom courses allow you to access award-winning classroom training, without leaving your home or office. Our learning professionals are specially trained on how to interact with remote attendees and our remote labs ensure all participants can take part in hands-on exercises wherever they are.
We use the WebEx video conferencing platform by Cisco. Before you book, check that you meet the WebEx system requirements and run a test meeting (more details in the link below) to ensure the software is compatible with your firewall settings. If it doesn’t work, try adjusting your settings or contact your IT department about permitting the website.
How do QA’s online courses work?
QA online courses, also commonly known as distance learning courses or elearning courses, take the form of interactive software designed for individual learning, but you will also have access to full support from our subject-matter experts for the duration of your course. When you book a QA online learning course you will receive immediate access to it through our e-learning platform and you can start to learn straight away, from any compatible device. Access to the online learning platform is valid for one year from the booking date.
All courses are built around case studies and presented in an engaging format, which includes storytelling elements, video, audio and humour. Every case study is supported by sample documents and a collection of Knowledge Nuggets that provide more in-depth detail on the wider processes.
When will I receive my joining instructions?
Joining instructions for QA courses are sent two weeks prior to the course start date, or immediately if the booking is confirmed within this timeframe. For course bookings made via QA but delivered by a third-party supplier, joining instructions are sent to attendees prior to the training course, but timescales vary depending on each supplier’s terms. Read more FAQs.
When will I receive my certificate?
Certificates of Achievement are issued at the end the course, either as a hard copy or via email. Read more here.