I've installed Puppet! Now what?

Post on 10-May-2015

746 views 0 download

Tags:

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-environments

Transcript of I've installed Puppet! Now what?

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/

Adam Crews@1_adam_12

irc: dooadam@puppetlabs.com

Terri HaberProfessional Services

@baconqurlyqterri@puppetlabs.com

http://puppetlabs.com

Thank You!Learn More:

http://puppetlabs.comhttp://puppetlabs.com/community

http://puppetlabs.com/puppet/puppet-enterprise