PPT-204: Puppet 204 – System Administration Using Puppet

Course

Intro Video

Photo of Travis Thomsen

Travis Thomsen

Course Development Director in Content

I have over 17 years of experience in all phases of the software development life cycle, which includes software analysis, design, development, testing, implementation, debugging, maintenance and documentation. I am passionate about learning new technologies, methodologies, languages and automation.

Length

19:35:52

Difficulty

Intermediate

Videos

78

Hands-on Labs

9

Quizzes/Exams

12

Course Details

This course is designed for those who are seeking a career in DevOps by preparing you for the System Administration Using Puppet certification exam.  You will learn how to manage infrastructure using Puppet Enterprise with common best practices.

Syllabus

Introduction

Introduction to Linux Academy

00:08:58

Lesson Description:

In this video, we introduce you to all the features of Linux Academy and how to get the most out of them.

Get Recognized!

00:00:36

Lesson Description:

Once you complete the course, learn how to get recognized in the Linux Academy Community!

Introduction to Puppet

00:05:06

Lesson Description:

In this lesson, we are going to be introduced to Puppet, what it is, and why we should use it in our environment.

About This Course

00:02:33

Lesson Description:

In this lesson, we are going to talk about this course and meet the instructor.

Using Cloud Playground and Restart PE Services

00:09:58

Lesson Description:

In this video, I will show you how to use Cloud Playground to create a PE server. Also I will cover some basic troubleshooting techniques if you have issues connecting to the PE Console. The commands below are used to restart the PE Services: service pe-puppetdb stop service pe-puppetserver stop service pe-console-services stop service pe-puppetdb start service pe-puppetserver start service pe-console-services start

Puppet Head First

00:18:36

Lesson Description:

In this lesson, we are going to dive into Puppet head first. We are going to build a Puppet master and agent node. We will then download a few modules from the Puppet Forge and manage our agent node with these modules. This lesson is meant to give the student a hands-on overview of Puppet.

Puppet Enterprise Stack and Core Concepts

00:07:47

Lesson Description:

In this lesson, we are going to talk about the core features that come with Puppet Enterprise and the enterprise process. This is meant as an overview to get the student thinking about the process while we finish our introduction and move into more advanced application of the Puppet tools.

Nodes

00:02:55

Lesson Description:

In this lesson, we are going to talk about nodes and which operating systems support the running of Puppet Agent.

Installing and Configuring Puppet

Puppet and SELinux

00:01:29

Lesson Description:

In this lesson, we will take a look at how to configure SELinux to work with Puppet.

Installing Puppet, Part 1

00:11:08

Lesson Description:

In this lesson, we review how to install Puppet Enterprise using the installer, as well as learn about the services, directories, and important ports.

Installing Puppet, Part 2

00:09:51

Lesson Description:

In this lesson, we take what we learned from part 1 and install Puppet Enterprise using the pe.conf file.

puppet.conf

00:16:48

Lesson Description:

In this lesson, we discuss the puppet.conf configuration file, as well as how to change puppet.conf settings using the command line.

Exercise: Set Up a Puppet Enterprise Server and Agent

02:00:00

Exercise: Configuring Settings in puppet.conf by Using the Command Line

00:30:00

Installing and Configuring Puppet

Hands-on Labs are real live environments that put you in a real scenario to practice what you have learned without any other extra charge or account to manage.

Installing and Configuring Puppet Enterprise 2016.2

00:00:02

How Puppet Works

Resource Abstraction Layer

00:07:48

Lesson Description:

In this lesson, we are going to learn how the RAL (Resource Abstraction Layer) contributes to Puppet's ability to take a description of a resource and implement it using providers. The RAL is important to understand how Puppet works with different operating systems, as well as Linux distributions.

Using Resource Types to Create a Manifest

00:19:28

Lesson Description:

In this lesson, we take what we learn about resource abstraction and Puppet resource types to create our first Puppet manifest.  We will then use puppet apply to enforce our manifest on our node.

Catalog Compilation

00:04:32

Lesson Description:

In this lesson, we are going to look at the process of catalog compilation.

Exercise: Create User Manifest

00:30:00

Exercise: Create a Package Manifest

00:30:00

Exercise: Create a File Manifest

00:30:00

How Puppet Works

Node Management

Certificate Signing Request

00:12:58

Lesson Description:

In this lesson, we learn about the Puppet Master certificate authority and how to sign certificates from our Puppet agents.

Running the Puppet Agent

00:21:22

Lesson Description:

In this lesson, we go into more detail about executing a Puppet run against the Puppet Master. You will also learn to use a variety of flags that can effect your Puppet run.

Using site.pp

00:08:56

Lesson Description:

In this lesson, we are going to look at the process of catalog compilation, as well as set up a node definition in site.pp.

Exercise: Revoke a Certificate

00:30:00

Exercise: Regenerate a Certificate

00:30:00

Hands-on Labs are real live environments that put you in a real scenario to practice what you have learned without any other extra charge or account to manage.

Managing Nodes

00:00:02

Quiz: Node Management

Modules and Classes

Setting Up a GitHub Account

00:04:29

Lesson Description:

In this lesson, we create a GitHub account and repository to manage our first Puppet module.

Modules

00:09:14

Lesson Description:

In this lesson, we are going to talk about modules, including how to generate them using the module generate command, as well as their structure and layout.

Classes

00:17:27

Lesson Description:

In this lesson, we look at classes and how to use them.  We will then add our first class to our module.

Facter

00:19:29

Lesson Description:

In this lesson, we start using Facter with our Puppet modules to help us handle operating system specific configurations.

Autoloading

00:06:08

Lesson Description:

In this lesson, we are going to learn about Puppet autoloading concepts.

Declaring Classes in the PE Console and site.pp

00:08:13

Lesson Description:

In this lesson, we are going to use both the PE Console and site.pp to help us add Puppet modules to our nodes.

Exercise: Create a Class

00:30:00

Exercise: Create an External Fact

00:30:00

Quiz: Modules and Classes

Hands-on Labs are real live environments that put you in a real scenario to practice what you have learned without any other extra charge or account to manage.

Generating a Module

00:00:01

Puppet DSL

DSL Overview

00:20:01

Lesson Description:

In this lesson, we are going to do an overview of common Puppet resources, as well as common DSL syntax that we will be using throughout the section.

Puppet Style

00:18:05

Lesson Description:

In this lesson, we go over the PuppetLabs style guide on how to write clean and consistent Puppet code. You are not just writing code for yourself but also the guy that comes after you.

Data Types

00:11:50

Lesson Description:

In this lesson, we go over the different data types used in the Puppet DSL.

Relationships and Dependencies

00:14:04

Lesson Description:

In this lesson, we are going to over a few ways of managing dependencies in Puppet.

Conditional Statements

00:17:50

Lesson Description:

In this lesson, we are going to learn how to add distribution-specific support by adding conditional statements. We are also going to look at the if, unless, and case statements, and the selectors statement.

Adding Additional Nodes

00:04:35

Lesson Description:

In this lesson, we are going to add additional operating system support for nodes. We will look at how to add them using the PE console as well as in site.pp.

Files and Resource Defaults

00:09:16

Lesson Description:

In this lesson, we are going to learn how to use files in a Puppet module to manage a configuration file.

Templates

00:12:58

Lesson Description:

In this lesson, we are going to learn how to use the template function to dynamically populate files from within our classes. We will create a dynamic ssh.conf file as part of this lesson.

Class Parameters and Defaults

00:17:07

Lesson Description:

In this lesson, we are going to look at a couple of ways to include default data in our Puppet modules.

Metaparameters

00:04:36

Lesson Description:

In this lesson, we are going to talk about resource type metaparameters. We are also going to be introduced to the schedule resource type.

Puppet Functions

00:10:58

Lesson Description:

In this lesson, we are going to learn about the various Puppet functions.  Then we will cover, in more detail, the more commonly used functions such as alert, create_resources, err, fail, hiera, hiera_array, hiera_hash, hiera_include, include, and warning.

Iteration and Loops

00:14:45

Lesson Description:

In this lesson, we are going to learn about how to use iterators and loops.

Variables and Scope

00:20:49

Lesson Description:

In this lesson, we are going to learn about variable syntax, top level scope, node level scope, and class level scope.

Defined Resource Types

00:07:15

Lesson Description:

In this lesson, we will learn about Defined Resource Types and how and why you want to use them.

Resource Collectors

00:11:54

Lesson Description:

In this lesson, we are going to learn how to use resource collectors to search for a group of resources by attribute and modify attributes based on the returned result by the resource collector.

Creating an NTP Class

00:33:58

Lesson Description:

In this lesson, we are going to build a full NTP module to manage our NTP on our CentOS and Ubuntu nodes. This lesson is a must and incorporates almost everything we have learned in the Puppet DSL up to this point.

Exercise: Looping Using the each Function

00:30:00

Exercise: Using Selector Statements

00:30:00

Exercise: Creating Resource Dependencies

00:30:00

Quiz: The Puppet DSL

Hands-on Labs are real live environments that put you in a real scenario to practice what you have learned without any other extra charge or account to manage.

Building Your First Puppet Module

00:00:01

Roles and Profiles

Overview

00:06:23

Lesson Description:

In this lesson, we are going to have a quick conceptual overview of roles and profiles and how we are going to use them in our code to make managing node definitions easier.

Creating a Profiles Module

00:09:15

Lesson Description:

In this lesson, we are going to walk through creating a profiles module and an NTP profiles class.

Creating a Roles Module

00:11:24

Lesson Description:

In this lesson, we are going to create a role for our NTP module and then assign the proper profiles to the role.

Exercise: Create a Profile Module

02:00:00

Exercise: Create a Role Module

01:00:00

Quiz: Roles and Profiles

Hands-on Labs are real live environments that put you in a real scenario to practice what you have learned without any other extra charge or account to manage.

Create a Role and Profile for NTP

00:00:01

Hiera

Hiera Overview

00:08:34

Lesson Description:

In this lesson, we are going to have a brief overview of what Hiera is, when you should use it, the benefits, and basic configuration details.

Setting Up Our Configuration File and Data Sources

00:07:46

Lesson Description:

In this lesson, we are going to walk through setting up a Hiera configuration. We will also learn how to use the Hiera command line tool to test our configuration and ensure it is returning the proper values.

Using Hiera by Example

00:09:32

Lesson Description:

In this lesson, we are going to create a Hiera data file and use that data with a profile.

Exercise: Configure Hiera

01:00:00

Exercise: Add Hiera Data for your NTP Module

01:00:00

Quiz: Using Hiera

Hands-on Labs are real live environments that put you in a real scenario to practice what you have learned without any other extra charge or account to manage.

Configure Hiera and Create a Hierarchy

00:00:01

Code Management

Overview

00:06:56

Lesson Description:

In this lesson, we look at the components used in Puppet's code management system.

Set Up and Configure Code Manager

00:13:48

Lesson Description:

In this lesson, we create a control repository that will be used to download our Puppet modules on to the Puppet master server. Then, we configure Code Manager using the PE Console. Repos: git@github.com:linuxacademy/content-ppt-204-control.git

Configuring the Puppetfile

00:10:20

Lesson Description:

In this lesson, we begin adding Puppet modules to the Puppetfile and download them using Code Manager.

Code Manager and Environments

00:20:21

Lesson Description:

In this lesson, we discuss how to create and manage Puppet environments by creating a branch in our control repository.

Deploying Hiera

00:05:51

Lesson Description:

In this lesson, we'll learn how to deploy our Hiera data files using code manager.

Exercise: Create a Control Repo and Configure Code Management

02:00:00

Exercise: Deploy Modules Using Code Manager

02:00:00

Quiz: Code Management

Hands-on Labs are real live environments that put you in a real scenario to practice what you have learned without any other extra charge or account to manage.

Configure Code Manager

00:00:01

Building a Simple Nginx Module

Building the Base Module

00:17:19

Lesson Description:

In this lesson, we are going to generate the skeleton for our nginx module. Next, we create the install.pp, config.pp, service.pp, and params.pp files that will be the foundation of the module. We will then build out the params.pp and init.pp files. Nginx Repo: https://github.com/linuxacademy/content-ppt-204-nginx

Building the Core Classes

00:15:21

Lesson Description:

In this lesson, we will build out the classes for install, config, and service.

Adding Defined Resource Types for Managing VHosts

00:07:02

Lesson Description:

In this lesson, we are going to create a defined resource type to manage vhosts for our Nginx module.

Adding Directory Management

00:05:46

Lesson Description:

In this lesson, we add directory management to config.pp and vhost.pp.

Creating the Required Templates

00:03:28

Lesson Description:

In this lesson, we create the templates nginx.conf and vhosts.conf.

Adding Roles and Profiles

00:11:36

Lesson Description:

In this lesson, we are going to create a role and profile for our Nginx module. Repos: https://github.com/linuxacademy/content-ppt-204-role https://github.com/linuxacademy/content-ppt-204-profile https://github.com/linuxacademy/content-ppt-204-control

Adding Hiera Data to the Nginx Module

00:13:54

Lesson Description:

In this lesson, we are going to use Hiera to create an array of vhosts. Next, we are going to modify our nginx profile and loop through the array of vhosts. Repos: https://github.com/linuxacademy/content-ppt-204-control

Hands-on Labs are real live environments that put you in a real scenario to practice what you have learned without any other extra charge or account to manage.

Modules, Roles, Profiles, Hiera, and Classification

00:00:02

Node Classification

site.pp and Node Definition Matching

Lesson Description:

In this lesson, we are going to talk about using site.pp for classification, as well as how to create node definitions.

External Node Classifiers

00:04:41

Lesson Description:

In this lesson, we are going to talk about external node classifiers (ENCs) and how to use them with Puppet.

Using the Puppet Console for Classification

00:06:36

Lesson Description:

In this lesson, we are going to learn how to classify nodes using the built in classifier, the PE console, and node groups.

Using site.pp with an ENC

Lesson Description:

In this lesson, we are going to learn how using the site.pp manifest and an external node classifier (the console) merges its node object data and executes in a catalog compilation.

Using Hiera for Classification

00:07:54

Lesson Description:

In this lesson, we will learn how to use Hiera as your ENC for node classification.

Exercise: Using the Console and Classifier for Node Classifications

01:00:00

Exercise: Using the Console with site.pp

03:00:00

Quiz: Node Classification

Hands-on Labs are real live environments that put you in a real scenario to practice what you have learned without any other extra charge or account to manage.

Configure Hiera as an ENC

00:00:02

Puppet Management

Puppet Enterprise Console Overview

00:11:10

Lesson Description:

In this lesson, we are going to talk about common console tasks, available reports, where data is stored, and things we should know to manage Puppet.

Troubleshooting

00:09:21

Lesson Description:

In this lesson, we are going to go through common troubleshooting items – from installing PE, certificates, and communication between the master and agent to PuppetDB.

Reporting

00:09:38

Lesson Description:

In this lesson, we are going to look at how to enable reporting and the different report processors available via Puppet Enterprise.

Puppet Enterprise Roles Based Access Control

00:07:24

Lesson Description:

In this lesson, we will take a look at Puppet's Roles Based Access Control (RBAC).

Deactivating a Puppet Enterprise Agent Node

00:04:33

Lesson Description:

In this lesson, we are going to talk about the process of deactivating and decommissioning a Puppet node.

Event Inspector

00:04:18

Lesson Description:

In this lesson, we are going to look at the Puppet Enterprise Event Inspector. We will learn what events are and how we can view the current state of our environments using Event Inspector.

Checking Values of Settings

00:05:10

Lesson Description:

In this lesson, we are going to talk about how to use Puppet config print and the --configprint parameter on Puppet agent and the Puppet master commands.

Puppet Resource Command

00:03:32

Lesson Description:

In this lesson, we are going to learn how we can use the puppet resource command to control resources on a system on the command line!

Exercise: Removing a Node from the Puppet Master

00:30:00

Exercise: Checking Values of Settings

00:30:00

Quiz: Puppet Management

Advanced Topics and Extras

Puppet Orchestration Overview

00:05:32

Lesson Description:

In this lesson, we take a quick overview of Puppet orchestration.

Exec

00:05:38

Lesson Description:

In this lesson, we take our first look at the exec resource type.

Host

00:09:32

Lesson Description:

In this lesson, we are going to practice Puppet using the host resource type.

Exported Resources

00:03:16

Lesson Description:

In this lesson, we take a look at an overview of exported resources.

Exercise: Using the Exec Resource Type

01:00:00

Quiz: Advanced Topics and Extras

Conclusion

Puppet Documentation

00:02:58

Lesson Description:

In this lesson, we are going to talk about Puppet documentation.

Puppet Professional Certification

00:03:01

Lesson Description:

In this lesson, we talk about taking the Puppet Professional certification and the conclusion of the course! Use this code for 25% off the exam price! PL25LIN

Get Recognized!

00:00:36

Lesson Description:

Now that you have completed the course (and maybe the exam), learn how to get recognized in our community for your efforts!

Quiz: Final Exam

Exercise: Puppet Exam Discount Code

00:30:00