Introduction to Puppet Roles and Profiles

Visit Tutorial Page ( Report)
This course is created for people that are starting out with Puppet and want to familiarize themselves with the Roles and Profiles design pattern. If you want to get a clear explanation of the theory behind Roles and Profiles, supported with practical examples then this is the course for you! We will cover creating a base profile to manage to generic settings your infrastructure and we will cover a design pattern to handle different platforms in our base profile. Additionally, we will use Hieradata in combination with Profiles and class parameters and employ create_resources to dynamically manage resources using data retrieved from Hiera.
  • Introduction to this course
    • Introduction

      Introduction to the Roles & Profiles course.

    • A thank you
    • Why Roles and Profiles?

      Why do we need Roles and Profiles?

    • Different types of modules

      A look at component modules.

    • Selecting great modules on the Puppetforge

      How can we find the great modules on Puppet Supported Release date (Still actively maintained?) Documentation Voxpupuli Quality Score/Community rating Look at the code on Github

    • Why use Puppet modules?

      Don't reinvent the wheel! Use modules from the Forge. Here's why!

  • Role and Profile Theory
    • Theory of Roles and Profiles: Overview

      Roles and Profiles explained

    • Settings that apply to all machines: profile::base

      Configuration that is managed for all our machines is included in the profile::base class.

  • Setting up roles and profiles
    • Creating the Role and Profile modules

      Creating the modules and setting up a profile::base.

    • Downloading a component module

      Installing a Forge module

    • Testing our profile::base

      Testing our profile::base on a Vagrant box.

    • Expanding profile::base -> Managing some system users

      We will manage a couple of system users with our profile::base

  • Making it Rock with Hiera
    • Quick introduction to Hiera

      Get flexible by separating data and code!

    • Managing the system users with Hiera using create_resources

      Step-by-step walkthrough of migrating from fixed resources to hiera-based resources.

    • Looking at the hierarcy used in hiera.yaml

      Adding host- or role-specific users with Hiera.

    • create_resources is very common in profiles!
  • profile::base with multiple platforms
    • Multiplatform profile::base
  • Setting up a role and profile for a webserver
    • Overview of the pattern

      What will we setup in this section?

    • Create the profile::lamp and the role::web classes

      Setting up the lamp profile class and the corresponding role

    • Add custom fact to test our new web role

      We need to do some node classification to test our new role.

    • Using create_resources to manage apache::vhost and mysql database resources

      Setting up the correct keys in our hieradata so they will be used by the create_resources function.

  • Node Classification with Roles and Profiles
    • Node classification: There is more than one way to do it!

      How can we use node classfication? Client based Custom fact Server based Hiera Web interface

  • The End - Fini - Einde - Ende
    • Course Summary

      Let's see what we have learned today. A quick summary and thank you!

    • Bonus: Get a discount on my full infrastructure course!
Write Your Review