i've installed puppet! now what?
DESCRIPTION
After getting Puppet installed, what are the things you need to consider to make use of your environment? This presentation talks about using version control, a strong workflow, and methods to organize your modules. A git repo with the example module module setup is available at https://github.com/adamcrews/pug-environmentsTRANSCRIPT
I’ve Installed Puppet!Now What?
Hour 1
You’ve run the puppet installer,You’ve installed agents on your nodes...
Now what?
Version Control, Workflow, Organization
Version ControlHave you ever:
● Made a change to code, realised it was a mistake and wanted to revert?● Lost code or had a backup that was too old?● Wanted to see the difference between various versions of your code?● Wanted to prove that a particular change broke or fixed a piece of
code?● Wanted to review the history of some code?● Wanted to submit a change to someone else's code?● Wanted to share your code, or let other people work on your code?● Wanted to see how much work is being done, where, when, and by
whom?● Wanted to experiment with a new feature without interfering with
working code?
Workflow
● R10K○ Deployment tool for Puppet○ Leverages git for quick and reliable updates○ As many environments as you want○ Test your code before production○ Robust error handling
Organization - Multiple Masters● Pros
○ Separate out Production from Development○ Complete separation of all aspects of the
environment.○ Security separation so pre-release code
cannot “leak” into production.○ Upgrade/downgrade components without
causing disruption
Organization - Multiple Masters● Cons
○ You must ensure you have a good code flow between masters
○ Risk of environment drift between the silos○ Data is not shared between silos
Organization - Hiera● Hiera allows data separation
○ Data is separate from code logic○ Easy task delegation○ Single source of truth for data○ Ability to collect data from external
sources, but present in a consistent way.
Organization - Hiera● Allows you to use modules directly
from the Forge:
1. Download the module (or use r10k)2. Add data to Hiera3. Classify on a node4. ???5. Profit
Organization - Roles and Profiles
● Glue between nodes, Hiera, and modules● Avoids “magic” Hiera data● Separate business logic from technology stack● Modules stay generic● Nodes can be classified using one include
Organization - Roles and Profiles● Profiles
○ Configuration of generic modules○ Business logic on how to utilize modules○ Examples:
■ apache::dev - Configure apache for dev hosts, perhaps disable ssl
■ apache::prod - Configure apache for prod hosts, require ssl
Organization - Roles and Profiles● Roles
○ A collection of profiles○ A group of modules/profiles that make up a
single server role, for example a WordPress website
○ Each node should only have a single role
Hour 2
You’ve decided on a version control system,You’ve decided on a workflow,You’ve decided on an overall architecture...
Now what?
Setup R10K, Configure NTP, Configure Minecraft
NTP - A practical Example
Step 1 - Install the module via r10k
Step 2 - Add the key(s) to hiera
Step 3 - Classify the node
DEMO!
Minecraft - A more fun, but less practical exampleStep 1 - Install the module via r10k
Step 2 - Add the key(s) to hiera
Step 3 - Classify the node
DEMO!
Hour 3 - Light reading● R10k
○ http://bit.ly/puppetr10k
● Git Workflow and Dynamic Environments○ http://bit.ly/puppetgit
● “DevOps. It’s about culture, stupid!”○ http://slidesha.re/18vbP8U
● Separating Data from Code○ http://bit.ly/puppetdata
● Beer Finding App (Because you deserve it now)○ https://untappd.com/
Thank You!Learn More:
http://puppetlabs.comhttp://puppetlabs.com/community
http://puppetlabs.com/puppet/puppet-enterprise