Learning Path: Puppet: From Novice to an Expert Puppet User
4.2 (21 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
231 students enrolled
Wishlisted Wishlist

Please confirm that you want to add Learning Path: Puppet: From Novice to an Expert Puppet User to your Wishlist.

Add to Wishlist

Learning Path: Puppet: From Novice to an Expert Puppet User

Acquire the key skills of Puppet to effectively manage and automate your IT infrastructure
4.2 (21 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
231 students enrolled
Created by Packt Publishing
Last updated 8/2017
Price: $200
30-Day Money-Back Guarantee
  • 7 hours on-demand video
  • 1 Supplemental Resource
  • Full lifetime access
  • Access on mobile and TV
  • Assignments
  • Certificate of Completion
What Will I Learn?
  • Configure Puppet server infrastructures by using different methodologies and components
  • Add features to achieve redundancy and optimize performance
  • Deploy specific storage components for servers to ensure fast and reliable data delivery
  • Write efficient Puppet code tests and ensure proper code delivery to the Puppet master servers
  • Configure a highly available Puppet infrastructure along with storeconfigs and external node classifiers
  • Understand configuration using Docker and Puppet along with orchestration using Mcollective
  • Write custom plugins such as facts, resource types, providers and functions
View Curriculum
  • No prior programming or system administration experience is assumed

The challenges of IT infrastructures and the need to automate common activities has become the major requirements in many large organizations. Puppet is one such configuration management tool that allows to efficiently manage and automate all your IT infrastructure. If you’re a developer, a system administrator, or you are simply curious about learning Puppet, then go for this Learning Path. This Learning Path will help you to automate all your IT configurations and take control over what you do to each Puppet agent in a network, including when and how you do it.

Packt’s Video Learning Paths are a series of individual video products put together in a logical and stepwise manner such that each video builds on the skills learned in the video before it.

The highlights of this Learning Path are:

  • An all-you-need-to-know guide for configuring a scalable and highly available Puppet infrastructure
  • Develop the skills to run Puppet on single or multiple servers without hiccups

Let's take a quick look at your learning journey. This Learning Path gets you up-and-running with Puppet straightaway using real-world examples. You will learn to install and set up Puppet. You will then learn how to use different resource types available with Puppet, writing better manifests, handling dependencies, and using tags to gain more control with Puppet manifests. You will explore DSL, look at dependencies and how Puppet treats individual code blocks. You will also look at how you can manage Cron jobs and run arbitrary commands with Puppet.

Moving ahead, you'll take your Puppet knowledge to the next level by delving deep into concepts such as scaling the Puppet infrastructure, utilizing storeconfigs with PuppetDB, and using different external node classifiers. Get your hands dirty by running Puppet components in Docker containers, using Puppet to create Docker images, and running applications on Docker along with orchestration using Mcollective. Finally, you will learn how to write custom plugins for Puppet such as facts, resource types, providers, and functions.

By the end of this Learning Path, you'll have a solid understanding of Puppet and be a confident Puppet user.

Meet Your Expert:

We have combined the best works of the following esteemed author to ensure that your learning journey is smooth:

Toni Schmidbauer has been working with various Unix/Linux and BSD systems for the last 17 years. He started working with configuration management in 2005 with CFEngine 2 and switched to Puppet in 2010. Currently, he is responsible for a Puppet infrastructure containing around 2000 nodes running Solaris, AIX and Linux. When he's not writing Puppet code he likes to tinker with different programming languages and computers in general.

Anirban Saha is an infrastructure professional with more than six and half years' experience in infrastructure management at various industries and organizations ranging from early startups to corporate environments. He has worked extensively with configuration management and automation tools including Puppet, Chef, Ansible, Saltstack, and Terraform, to name a few. He has extensive experience in architecting, deploying, and managing large infrastructures. He speaks at various conferences on the latest technologies and is also the author of Salt Cookbook published by Packt Publishing.

Who is the target audience?
  • This Learning Path is for those who are new to Puppet including system administrators and developers who are looking to manage computer server systems for configuration.
  • However, if you have used Puppet before, you'll get a thorough grounding in all the latest features and techniques
Compare to Other Puppet Software Courses
Curriculum For This Course
38 Lectures
Learning Puppet
20 Lectures 03:36:39

This video provides an overview of the entire course.

Preview 03:18

In this video, we will talk about what configuration management actually means and how it is useful.

What Is Configuration Management?

In this video, we will talk about bootstrap in the course environment.

Installing Puppet as a Client or Agent

In this video, we will write our first Puppet manifest and apply it with the Puppet command.

Creating and Applying Your First Puppet Manifest

This video talks about how to get help from Puppet and how to get information about the current state of system resources.

Getting Help from Puppet and Inspecting System Resources

Get to know how we can manage files, directories, and links with Puppet.

Preview 09:09

You accidentally removed a file and would like to recover it.

Recovering Deleted Files

You would like to install or remove software packages.

Managing Packages

You would like to manage system services with Puppet.

Managing Services

Understanding metaparameters.

Understanding Metaparameters

How can we order the application of Puppet resources?

Learning ‘before’ and ‘require’

How can we notify services when a configuration file changes.

Using ‘notify’ and ‘subscribe’

Execute system commands with Puppet.

Using exec for Executing System Commands

Learn how to manage cron jobs with Puppet.

Scheduling Commands with cron

Understand Puppet modules.


Understanding Puppet classes.

Class Structure

Learn how to write good Puppet modules.

Module Best Practices

Learn how to install, configure, and start the NTP daemon.

Creating a NTP Module

Learn how to manage complex configuration files with Puppet.

Understanding Templates

Learn how to manage the NTP configuration file with a template.

NTP Class and Templates

Test Your Knowledge
6 questions
Advanced Puppet Techniques
18 Lectures 03:17:09

This video provides an overview of the entire course.

Preview 05:54

As infrastructure grows to hundreds and thousands of nodes, the capacity of the Puppet server reaches a limit. Load balancing in multiple Puppet servers is an optimal way to handle load and provide redundancy.

Load Balancing in Puppet Servers to Handle Scaling

As infrastructure grows, isolating the Puppet server components is a better way to manage them, rather than having a monolithic Puppet server node. Let’s take a look at isolating and centralizing the Puppet certificate authority service, which is an important step in this process.

Creating a Centralized CA Server for Authentication

With the growth in the number of agent nodes, maintaining a database and the history of node configuration and metadata is crucial for any infrastructure. PuppetDB helps to maintain this database and also aids in configuration via exported resources.

Understanding Exported Resources and Configuring PuppetDB

Infrastructure management involves services with server and client based models. The server has to push or pull the data from various nodes in the infrastructure for which it needs the node specific information. To automate this process, the methods of exporting and collecting in Puppet modules are extremely useful.

Exporting and Collecting in Modules using PuppetDB

After the data from thousands of nodes are stored in a database, they are not very useful, unless they can be queried and visualized using structured querying mechanisms. Different Puppet query mechanisms and dashboards helps in solving these problems.

Using the PuppetDB API and Dashboard

As the number of nodes and service roles grow in an infrastructure, it is important to have proper node classification mechanisms so that nodes are able to receive catalogs correctly and without latency. Proper manageable node classification methods are also desirable.

External Node Classification Using Scripts

Hostname based node classification often gets very complex and it is easier to switch to other node classification methods. Apart from providing data isolation from code, Hiera can also be an effective framework to provide node classification data based on metadata such as facts.

Node Classification Using Hiera

Running Puppet components in Docker containers is a bit different than doing it on a physical or virtual machine. It is important to understand how the service components work in an isolated manner and also in the form of an application stack.

Running Puppet server side components in Docker Containers

Running Puppet agent in Docker Containers to automate them is different from the general process; given the fact that container based dynamic environments don’t have hostnames for the containers and system based process control systems are unavailable in containers.

Automating Docker Containers Using Puppet Agent

The fact that containers are able to be spawned within few seconds is true. This is due to the fact that Docker images already have all the configurations baked in them and provisioning during the container launch is not required, thus bringing down the deployment time. Creating images is a crucial step in container based environments.

Creating Docker Images

Once Puppet server side components and containers are ready to be spawned using Docker images, it is important that we are able to launch application stacks involving multiple components such as application and database. Docker Compose can be managed efficiently by use of respective Puppet modules and help us in managing container based application stacks.

Running Applications in Docker Using Puppet

Once infrastructure reaches a considerable size, a requirement is to be able to perform specific tasks on specific nodes. Managing and maintaining an inventory of role based nodes is a tedious process. MCollective can be a very efficient tool in implementing orchestration which helps us to target nodes based on metadata and run specific tasks

Configuring MCollective for Orchestration in Puppet

Although facter provides a lot of system facts, often in complex environments, they are not enough. By writing custom facts based on our infrastructure, we can add meaningful custom data to our infrastructure nodes based on which complex tasks can be performed.

Writing Custom Facts

Puppet built-in types are very helpful in writing configurations. However, for simplified use of Puppet modules, often writing custom types are very important. For users who don’t wish to get into the complex methods of writing Ruby based Puppet types, resource types are a simpler alternative where custom types can be written using the Puppet language.

Writing Custom Resource Types

With the numerous tools and services available in the infrastructure ecosystem, it is quite exhausting and time consuming to write Puppet modules for them from scratch using built-in Puppet types. For such scenarios, advanced Puppet types can be written using Ruby which can simplify custom tasks.

Writing Custom Puppet Types

Puppet types are useful in defining custom tasks and processes, however without Providers, Puppet types are unable to do much. If Puppet types are the interface to create custom configurations, providers are the backend logic which actually performs the tasks on the systems. Multiple providers can be written for systems or services with different behaviors.

Writing Custom Providers

Although Puppet types and Providers help us in creating advanced tasks and interfaces, for some smaller tasks and scenarios, it is enough to create functions. Custom functions can be created in the Puppet language and Ruby to handle such scenarios.

Writing Custom Functions

Test Your Knowledge
5 questions
About the Instructor
Packt Publishing
3.9 Average rating
8,249 Reviews
59,115 Students
687 Courses
Tech Knowledge in Motion

Packt has been committed to developer learning since 2004. A lot has changed in software since then - but Packt has remained responsive to these changes, continuing to look forward at the trends and tools defining the way we work and live. And how to put them to work.

With an extensive library of content - more than 4000 books and video courses -Packt's mission is to help developers stay relevant in a rapidly changing world. From new web frameworks and programming languages, to cutting edge data analytics, and DevOps, Packt takes software professionals in every field to what's important to them now.

From skills that will help you to develop and future proof your career to immediate solutions to every day tech challenges, Packt is a go-to resource to make you a better, smarter developer.

Packt Udemy courses continue this tradition, bringing you comprehensive yet concise video courses straight from the experts.