We may earn an affiliate commission when you visit our partners.
Course image
Packt Publishing

Puppet is a configuration management system that automates all your IT configurations, giving you control of what you do to each node, when you do it, and how you do it.

Read more

Puppet is a configuration management system that automates all your IT configurations, giving you control of what you do to each node, when you do it, and how you do it.

This video course takes you from a basic knowledge of Puppet to an advanced level, where you'll master the latest and most advanced Puppet features. You will discover advanced techniques to deal with centralized and decentralized Puppet deployments and take control of your servers and desktops. This course will also present interesting examples illustrating how to automate Puppet deployment for configuration management and every aspect of your systems, including provisioning, deployment, and change management. By learning these skills, you will make Puppet reliant, scalable, and high-performing.

About The Author

Thomas Uphill is a long-time user of Puppet. He has presented Puppet tutorials at LOPSA-East, Cascada, and PuppetConf. He has also been a system administrator for over 20 years, working primarily with RedHat systems; he is currently a RedHat Certified Architect (RHCA). When not running the Puppet User Group of Seattle (PUGS), he volunteers for the LOPSA board and his local LOPSA chapter, SASAG.

Enroll now

What's inside

Learning objectives

  • Initialize a code repository for your project and manage module dependencies
  • 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
  • Implement orchestration using mcollective and hiera for data management
  • Learn to trigger notifications and alerts for noteworthy puppet events
  • Write efficient puppet code tests and ensure proper code delivery to puppet master servers
  • Utilize some best practices and tips on how to troubleshoot issues that might crop up

Syllabus

Getting Started

This video provides an overview of the entire course.

Puppet is a configuration management tool; you use it to keep the configuration of your machines consistent. There are several terms used in a Puppet installation; we'll introduce those here.

Read more

In this section, a detailed understanding of the different Puppet architectures will be provided, with emphasis on the difference between installation with Passenger and Puppet Server.

We will learn how to initialize a code repository for our project and how to create appropriate branches for the same to be used in development, builds and tests later.

We will learn to use r10k to manage module dependencies in our project and see how they can be useful to automate deployments in the MPLI Productions Puppet infrastructure.

In this video, we will go through the typical installation of a PuppetServer machine in a standalone configuration. For convenience, we will refer to this machine as puppetca.

In this video, we are going to have one puppetca and two puppet master machines. The puppetca will act as a load balancer for our configuration.

In this video, we will modify our configuration to make the puppetca machine accessible directly.

In this video, we will learn how to tweak parameters in the Puppet configuration files to increase performance in Puppet client runs and in storing and retrieving Puppet metadata.

In this video, we will learn how to install and configure PuppetDB with a PostgreSQL database as the backend for better scalability in the MPLI Productions environment.

In this video, we will introduce the concept of exported resources and show some usage examples

In this video, we will learn how to utilize the default dashboard available with PuppetDB and how it can be used to visualize infrastructure data for MPLI Productions.

In this video, we will learn about the different API endpoints that PuppetDB provides and the type of information that we can utilize and manipulate from them.

We will learn how to use already developed public modules and reuse them for tasks in MPLI productions.

We will learn to create custom facts based on internal requirements for MPLI productions and use them to develop modules.

We will learn how to go beyond the default types available with Puppet and write custom types for an MPLI Productions environment.

We will understand what Hiera is and how to use it for data management for an MPLI Productions Puppet environment.

We will configure mcollective on the Puppet client nodes in MPLI Productions so that we can run remote commands and modules on the nodes using the same.

We will learn how to configure Puppet to enable reporting.

We will learn how to install, configure and manage the Foreman dashboard and integrate the Puppet masters for MPLI Productions with it.

We will learn how to configure various types of report processors for the dashboards and generate meaningful reports for the MPLI Productions infrastructure.

We will learn how to identify and monitor Puppet events such as sync failures and raise alerts and notifications for them for MPLI Productions.

We will learn how to install puppet-lint and use it to perform DSL syntax tests on the puppet code we have written for MPLI Productions.

In this video, we will learn to install rspec-puppet and write unit tests.

In this video, we will learn to install Beaker and write acceptance tests.

We will learn to install Test Kitchen and bring all of the above mentioned tests together so that they can be run as a suite.

We will learn to use the tests that we have written and build the Puppet code on Jenkins to be merged with the master branch of the repository.

In this video, we will talk about the Puppet API and the Puppet CA API.

In this video, we will discuss SSL certificates and X509 SSL certificates.

In this video, we will discuss why does Puppet fail the first time then work fine the second or third time.

In this video, we will use Pry to interrupt the Puppet server and inspect the running process.

We will learn to understand and follow a few best practices to develop Puppet code and maintain the Puppet infrastructure in an efficient manner.

Traffic lights

Read about what's good
what should give you pause
and possible dealbreakers
Covers advanced Puppet features, which are essential for managing and automating large IT infrastructures, making it highly relevant for professionals in DevOps roles
Explores centralized and decentralized Puppet deployments, providing practical knowledge for managing diverse server environments and scaling Puppet infrastructures effectively
Includes testing methodologies like puppet-lint, rspec-puppet, and Beaker, which are crucial for ensuring code quality and reliability in production environments
Features the use of r10k for managing module dependencies, which is a standard practice for automating deployments in Puppet infrastructures and maintaining code consistency
Requires familiarity with Puppet, as it builds upon basic knowledge to explore advanced topics, potentially posing a challenge for absolute beginners in configuration management
Uses PuppetDB with a PostgreSQL database, which may require learners to set up and manage these components, adding complexity to the learning process

Save this course

Create your own learning path. Save this course to your list so you can find it easily later.
Save

Reviews summary

Mastering puppet for large infrastructures

According to learners, this course offers a solid deep dive into advanced Puppet concepts essential for large-scale environments. Many found the sections on PuppetDB, Hiera, reporting, and testing particularly practical and valuable. The instructor's expertise shines through, explaining complex topics clearly. However, some reviewers noted that environment setup for labs can be tricky and that certain examples feel slightly outdated, requiring consultation of external documentation. The course is best suited for experienced users already comfortable with Puppet basics, rather than intermediate learners looking to step up.
Best suited for experienced Puppet users.
"It assumes a certain level of prior Puppet experience."
"Assumes too much prior knowledge. Not suitable for intermediate users trying to step up."
"Highly recommend if you are already comfortable with Puppet basics and want to go deeper."
"It's better suited for those already quite familiar with Puppet and general sysadmin tasks."
Instructor explains complex topics well.
"Excellent course! Thomas Uphill is clearly an expert. He explains complex topics like mcollective and testing in a way that is easy to follow."
"Fantastic resource for experienced Puppet users... The author's expertise shines through, especially in the sections on optimization and scaling."
"The instructor's experience is evident throughout."
Deep dive into key Puppet features for scale.
"Overall, this course was very useful for understanding advanced Puppet concepts, especially around scaling and performance. The sections on PuppetDB and Hiera were particularly strong..."
"A solid deep dive into Puppet for large scale use. The content on PuppetDB, exported resources, and reporting with Foreman was very practical."
"This course exceeded my expectations. It provides practical, real-world strategies for managing Puppet in complex environments. The deep dives into PuppetDB, Hiera, and reporting... are incredibly valuable."
"Good coverage of advanced Puppet topics relevant to large environments. The sections on reporting and testing were particularly useful."
Some examples slightly outdated, requires checking docs.
"Some parts felt a little dated in terms of specific versions or tools, but the core principles were clearly explained."
"While mostly up-to-date, a few examples felt slightly out of sync with the absolute latest Puppet versions, but nothing that broke the core concepts."
"Some configuration examples seemed slightly outdated, which required extra effort to get working with newer versions."
"Minor issue: occasional outdated examples required consulting Puppet docs."
Setting up labs can be tricky and frustrating.
"The labs were helpful, but setting up the environment was a bit tricky."
"However, I found some sections rushed, and the hands-on parts required a specific environment setup that wasn't trivial."
"The setup process was frustrating, and when examples didn't work, troubleshooting felt unsupported."
"The hands-on parts were essential but difficult to get running correctly due to environment requirements."

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in Mastering Puppet for Large Infrastructures with these activities:
Review System Administration Fundamentals
Solidify your understanding of core system administration concepts to better grasp Puppet's role in automation.
Browse courses on System Administration
Show steps
  • Review basic networking concepts like TCP/IP and DNS.
  • Familiarize yourself with user management and permissions.
  • Understand the basics of server configuration and maintenance.
Read 'Effective DevOps' by Jennifer Davis and Ryn Daniels
Gain a deeper understanding of DevOps principles to better apply Puppet in a modern IT environment.
View Effective DevOps on Amazon
Show steps
  • Read the book, focusing on the sections related to infrastructure as code and automation.
  • Reflect on how the concepts apply to your current or future work environment.
Automate Server Configuration with Puppet
Apply your Puppet knowledge by automating the configuration of a small number of virtual servers.
Show steps
  • Set up a virtual environment with two or three virtual machines.
  • Install Puppet master and agents on the VMs.
  • Write Puppet code to configure basic server settings like users, packages, and services.
  • Test your Puppet code and iterate on it until it works correctly.
Four other activities
Expand to see all activities and additional details
Show all seven activities
Puppet Code Katas
Sharpen your Puppet coding skills through focused practice exercises.
Show steps
  • Find online resources with Puppet coding challenges or katas.
  • Work through the exercises, focusing on writing clean and efficient code.
  • Review solutions and learn from your mistakes.
Write a Blog Post on a Puppet Module
Solidify your understanding of Puppet modules by explaining their functionality in a blog post.
Show steps
  • Choose a Puppet module that you find interesting or useful.
  • Research the module and understand its purpose and functionality.
  • Write a blog post explaining how the module works and how to use it.
  • Include code examples and screenshots to illustrate your points.
Contribute to a Puppet Module on GitHub
Deepen your Puppet expertise by contributing to an open-source Puppet module.
Show steps
  • Find a Puppet module on GitHub that you want to contribute to.
  • Review the module's code and documentation.
  • Identify a bug or feature that you can fix or implement.
  • Submit a pull request with your changes.
Read 'Infrastructure as Code' by Kief Morris
Expand your understanding of Infrastructure as Code principles to improve your Puppet deployments.
Show steps
  • Read the book, focusing on the sections related to Puppet and configuration management.
  • Consider how the concepts can be applied to improve your infrastructure automation workflows.

Career center

Learners who complete Mastering Puppet for Large Infrastructures will develop knowledge and skills that may be useful to these careers:
DevOps Engineer
A DevOps engineer works to bridge the gap between software development and IT operations, focusing on automation and efficiency. This course directly addresses core DevOps practices by teaching how to use Puppet to automate IT configurations. A DevOps engineer will learn to master advanced Puppet features, manage deployments, and implement change management. Furthermore the course covers techniques for handling centralized and decentralized deployments making Puppet reliable, scalable, and high performing. DevOps engineers who want to improve their automation skills should strongly consider this course.
Configuration Manager
A configuration manager focuses on the systematic control of changes to hardware, software, and other IT assets. This course is a strong fit for a configuration manager because it emphasizes Puppet, a configuration management system that automates IT configurations. The course teaches advanced techniques for managing centralized and decentralized Puppet deployments and provides practical examples of automating Puppet deployment for configuration management. It helps a configuration manager gain control of servers and desktops and gives them the ability to handle provisioning, deployment, and change management. A configuration manager who wishes to increase the reliability, scalability, and performance of Puppet would benefit from this course.
Infrastructure Engineer
An infrastructure engineer specializes in the design, implementation, and maintenance of an organization's IT infrastructure, which includes hardware, software, and networks. This course helps an infrastructure engineer gain proficiency in configuring Puppet server infrastructures by using different methodologies and components. The course also covers how to add features to achieve redundancy and optimize performance. The material teaches how to deploy specific storage components for servers to ensure fast and reliable data delivery. Infrastructure engineers who want a course that emphasizes practical skills will benefit from it.
Systems Administrator
A systems administrator is responsible for the upkeep, configuration, and reliable operation of computer systems, especially multi-user computers, such as servers. This course will be beneficial to a systems administrator by presenting advanced techniques to deal with centralized and decentralized Puppet deployments, and taking control of servers and desktops. The course also provides training in automating Puppet deployment for configuration management and every aspect of systems, including provisioning, deployment, and change management. A systems administrator who wishes to build more robust infrastructure would find the material valuable.
Automation Engineer
An automation engineer designs, develops, and implements automated systems, processes, and procedures. This course will help an automation engineer develop expertise with Puppet, a tool that automates IT configurations. This course leads to mastery of advanced Puppet features and techniques to deal with centralized and decentralized deployments. It enables the automation of configuration management and all aspects of systems, including provisioning, deployment, and change management. An automation engineer with this knowledge will be able to make Puppet deployment more reliable and efficient.
Platform Engineer
A platform engineer builds and maintains the underlying infrastructure and tools that other engineers use to develop and deploy software. This course teaches a platform engineer how to configure Puppet server infrastructures and manage them efficiently. It covers how to add features to achieve redundancy, optimize performance, and deploy storage. This course can improve a platform engineer's ability to deliver reliable, scalable, and high-performing systems. Additionally the course covers implementing orchestration using mcollective and Hiera for data management which is very relevant for a platform engineer.
Cloud Engineer
A cloud engineer designs, implements, and manages cloud-based systems. This course teaches skills that are beneficial for a cloud engineer, including how to configure Puppet server infrastructures with different methodologies. The course provides lessons on how to achieve redundancy and optimization. It also covers deploying storage components for servers that ensures fast and reliable data delivery. Cloud engineers working with infrastructure as code will find these skills valuable. The course also includes implementing orchestration using mcollective and Hiera for data management, which is very relevant for a cloud environment.
Cloud Systems Administrator
A cloud systems administrator manages and maintains cloud-based systems, ensuring they are reliable, secure, and efficient. The course teaches how to configure Puppet server infrastructures, add features to achieve redundancy and optimize performance. The course additionally addresses how to deploy specific storage components to ensure fast and reliable data delivery. A cloud systems administrator can leverage this instruction in their day to day work. Also the course covers implementing orchestration using mcollective and Hiera. A cloud systems administrator who wants to improve their practical skills should take this course.
Site Reliability Engineer
A site reliability engineer ensures that complex systems are stable, efficient, and reliable for the users. This course is helpful for a site reliability engineer because it provides a deep understanding of how to manage and automate IT infrastructure using Puppet. The course covers topics such as how to configure Puppet server infrastructures, achieve redundancy and performance, and deploy specific storage components. A site reliability engineer will find the course valuable because it focuses on scalability, reliability and performance. Additionally the course teaches how to test code and troubleshoot issues.
Infrastructure Architect
An infrastructure architect designs and oversees the implementation of complex IT systems, ensuring they meet the organization's needs for performance, scalability, and security. This course is useful for an infrastructure architect because it provides advanced knowledge of setting up configuration management with Puppet. The course covers architectures for scalability. It also covers redundancy, and performance on Puppet. An infrastructure architect may find value in understanding how to deploy storage components, implement orchestration, trigger notifications, and test Puppet code.
Release Engineer
A release engineer is responsible for the process of deploying software releases into various environments. This course may help a release engineer manage the infrastructure required for reliable deployments. The course teaches how to configure Puppet server infrastructures, add features for redundancy and optimization, and deploy storage components. These are all pertinent to a release engineer's work. In addition the course offers instruction on orchestration using mcollective and Hiera for data management. A release engineer who wants to deepen their practical knowledge may find value in the course.
IT Consultant
An IT consultant provides expert advice and guidance to organizations on how to use technology to meet their business goals. This course may be useful to an IT consultant by providing a strong understanding of a key configuration management system, Puppet. The consultant would have practical examples of automating Puppet deployment for configuration management and system maintenance. The course covers important skills, including centralized and decentralized Puppet deployments. It also demonstrates how to maintain scalable, high-performing Puppet infrastructures. These topics would help an IT consultant advise companies who want to improve their automation capabilities.
Technical Trainer
A technical trainer develops and delivers training programs on technical topics. This course may be useful for a technical trainer who wants to gain better knowledge of Puppet, a system for automating IT configurations. The trainer can use the course material to develop content for classes on Puppet. The course covers a wide variety of topics from basics to more advanced topics. A trainer who wishes to teach advanced topics will find the course valuable. Topics include dealing with centralized and decentralized Puppet deployments.
Network Engineer
A network engineer designs, implements, and maintains an organization's computer networks. This course may be useful for a network engineer, as it teaches how to manage infrastructure configuration in an automated manner, which is an increasingly important part of network management. The course covers architectures that enable Puppet to remain scalable, reliable, and high-performing. While the course focuses on Puppet, which is a tool for system configuration, this material can still be helpful to a network engineer. This course might be useful if this kind of automation is part of their role.
Software Developer
A software developer is responsible for developing, testing, and maintaining software applications. This course may be useful to a software developer insofar as it teaches how to automate the infrastructure upon which software is deployed. The course teaches Puppet, a system to automate IT configurations. It includes lessons on the practicalities of centralized and decentralized Puppet deployments. It also covers the automation of configuration management and maintenance of systems. This course may be useful for software developers involved in deploying software in complex projects.

Reading list

We've selected two books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in Mastering Puppet for Large Infrastructures.
Provides a deep dive into the principles and practices of Infrastructure as Code (IaC). It explores various tools and techniques for automating infrastructure provisioning and management, including Puppet. It offers practical guidance on designing, building, and deploying IaC solutions. This book is commonly used as a reference text by industry professionals and adds more depth to the course by providing a broader perspective on IaC.
Provides a comprehensive overview of DevOps principles and practices. It helps to understand the cultural and organizational aspects of DevOps, which are crucial for successful Puppet implementation. It offers practical guidance on building collaborative teams, automating infrastructure, and improving software delivery pipelines. This book is valuable as additional reading to understand the broader context of configuration management.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Similar courses are unavailable at this time. Please try again later.
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2025 OpenCourser