- Understand where configuration management should be applied in your infrastructure.
- Set up the Puppet ecosystem.
- Determine what existing modules can be used in your infrastructure.
- Write your own modules from scratch.
- Implementing Puppet in a multi-environment architecture.
- Separate business logic from module functionality.
Day 1 – Introduction
- What is Configuration Management and what it is not
- The Puppet language and terminology
- Architecture fundamentals (Server vs. Serverless)
- Installing the Puppet Server and Puppet Agent
- Filesystem paths
- Registering to the Puppet Server
- Puppet Agent:
- Our first Puppet run.
- Puppet Agent run flow
- Key concepts explained:
- Data types
Day 2 – Writing our first module
- Writing classes
- Parameter inheritance
- Parameter scope
- Using built-in Facts
- Setting up custom Facts
- Using modules from the Forge
- Writing custom modules
- Roles and Profiles
Day 3 – Separating components and environments
- Hiera and the lookup() function
- Create and understand the hierarchical topology
- Using the lookup() function
- Merge and Knockout using lookup()
- Demo only: Custom Facts
- Exporting and Collecting Resources
Day 4 – Git and r10k
- Using Git repositories to store Puppet modules
- Git flow
- Creating a control repository
- Separating environments with r10k