What is Puppet?
Puppet Essentials
What puppet does to systems and when
How to perform a manual run and add varying levels of output
- --noop, --test, --verbose, --debug
Registering nodes
Vagrant
What is Vagrant and why?
Requirements for using vagrant, software and packages
Creating your own Virtual Machine with Vagrant
Getting a basic VM up and running
Checking for existing VMs
Vagrant layout
Commands to control and use your VM
- Exercise: Create a simple vagrant VM of your own with a simple manifest, and check that it worked successfully.
Manifests and modules
What is a manifest
What is a module
Structure and layout
Syntax of a manifest and module
Class definitions
Node definitions
A simple manifest
A simple module
- Exercise:Create a simple module for your vagrant node to execute. Add it to Vagrant structure, but without committing it to Git. Make changes to the module and manifest and check that your changes affected your VM.
Types and Attributes
What are attributes and types
Where to find out more about types and attributes and understand the puppet labs documentation
Work with types, such as
- File
- Package
- Exec
- Service
- Notify
- User
Use multiple arguments for a type
- Example of creating a recursive directory
- Add multiple users
- Start multiple services
- Exercise: Configure and build a service with user requirement, and start the service, or have puppet restart the service if a file has changed. Use exec to action a non-puppet command.
Definitions
What is a definition
Using definitions to create multiple types with varying values
- Exercise: Create multiple users with parameters
Hiera Data Within Puppet
What is hiera?
How does Puppet know to use hiera data?
Structure of hiera data and the different storage types
- Exercise: Changing your manifest to use hiera
Facter
What is Facter
Using facter variables in Puppet
Creating and deploying your own facter variables
Template and Files
How to copy files verbatim to your host
Files with varying values (templates)
Using hiera with your templates
- Exercise: Create a configuration file for your service that requires varying attributes, and a file that should not change values.