32
DevOps: Getting Started with Puppet On Windows Rob Reynolds Software Engineer | Puppet Labs [email protected] @ferventcoder Thursday, September 5, 13

DevOps: Getting Started with Puppet on Windows

Embed Size (px)

DESCRIPTION

You keep hearing about DevOps and how awesome it is, if you have Linux. Well Windows can be awesome with DevOps, too. And it’s just going to keep getting better. If you are on Windows and you are even remotely interested in making things better, then you should come out and see what Puppet is all about and what it can do for your organization.

Citation preview

Page 1: DevOps: Getting Started with Puppet on Windows

DevOps: Getting Started with Puppet On

WindowsRob ReynoldsSoftware Engineer | Puppet [email protected]@ferventcoder

Thursday, September 5, 13

Page 2: DevOps: Getting Started with Puppet on Windows

Who am I?

• Developer at Puppet Labs / started July 1

• Author of Chocolatey

• DevOps interest for 2+ yrs or 7+ yrs

• Long time .NET Dev

• Learning Ruby

• Also still learning Puppet

Thursday, September 5, 13

Page 3: DevOps: Getting Started with Puppet on Windows

DevOps?• “Applying development practices to

operations”

• source control

• scripts

• testability

• “Everything from source to production”

• CI

• Automated Deployment ScriptsThursday, September 5, 13

Page 4: DevOps: Getting Started with Puppet on Windows

Why?

Thursday, September 5, 13

Page 5: DevOps: Getting Started with Puppet on Windows

You ever hear this during deployments?• “I sort of followed your instructions, but

I’ve done that one a few times so I knew where I could skip”

• “I didn’t realize you had changed that file so I didn’t push it”

• “I must have missed that step”

• “I didn’t realize we were deploying that”

Thursday, September 5, 13

Page 6: DevOps: Getting Started with Puppet on Windows

Or this?

• “You need how many servers by when? I’m not sure we can do that”

• “I’m setting up my new machine. Be back in a couple of days”

• “Something changed on this server.”

Thursday, September 5, 13

Page 7: DevOps: Getting Started with Puppet on Windows

You ever hear any of that from a machine?

Thursday, September 5, 13

Page 8: DevOps: Getting Started with Puppet on Windows

Machines are much more reliable at scriptable tasks

Thursday, September 5, 13

Page 9: DevOps: Getting Started with Puppet on Windows

Types of Servers

Thursday, September 5, 13

Page 10: DevOps: Getting Started with Puppet on Windows

Snow Flake Servers

• The guy who set that up is not here anymore

• We are scared to touch that server, it might break something

Thursday, September 5, 13

Page 11: DevOps: Getting Started with Puppet on Windows

Immutable / Phoenix Servers

• We stand a server up when we need one

• We tear it down when we are done

Thursday, September 5, 13

Page 12: DevOps: Getting Started with Puppet on Windows

Puppet

Thursday, September 5, 13

Page 13: DevOps: Getting Started with Puppet on Windows

What is Puppet?

• “Puppet is IT automation software that helps system administrators manage infrastructure throughout its lifecycle, from provisioning and configuration to orchestration and reporting. Using Puppet, you can easily automate repetitive tasks, quickly deploy critical applications, and proactively manage change, scaling from 10s of servers to 1000s, on-premise or in the cloud.”

Thursday, September 5, 13

Page 14: DevOps: Getting Started with Puppet on Windows

TL;DR - Puppet?

• Provisioner

• Server Automation / Assurance

• Reduce Configuration Drift

• The original Desired State Configuration (DSC)

• Automate repetitive tasks

• Reports

Thursday, September 5, 13

Page 15: DevOps: Getting Started with Puppet on Windows

Who is using Puppet?

Thursday, September 5, 13

Page 16: DevOps: Getting Started with Puppet on Windows

Puppet Run

Thursday, September 5, 13

Page 17: DevOps: Getting Started with Puppet on Windows

Resources - Puppet’s

Fundamental Building Blocks

Thursday, September 5, 13

Page 18: DevOps: Getting Started with Puppet on Windows

Resource Abstraction

Thursday, September 5, 13

Page 19: DevOps: Getting Started with Puppet on Windows

Resource Types

Thursday, September 5, 13

Page 20: DevOps: Getting Started with Puppet on Windows

Providers

Thursday, September 5, 13

Page 21: DevOps: Getting Started with Puppet on Windows

But Windows?!

Thursday, September 5, 13

Page 22: DevOps: Getting Started with Puppet on Windows

That’s sounds awesome, but...

Thursday, September 5, 13

Page 23: DevOps: Getting Started with Puppet on Windows

Puppet on Windows

• *nix vs Windows

• Resources

• Agent Only

Thursday, September 5, 13

Page 24: DevOps: Getting Started with Puppet on Windows

Supported Platforms

• Servers: Windows Server 2003 +

• Desktops: Windows Vista +

Thursday, September 5, 13

Page 26: DevOps: Getting Started with Puppet on Windows

Resources• file

• user

• group

• scheduled_task instead of cron

• package

• service

• exec

• hostThursday, September 5, 13

Page 27: DevOps: Getting Started with Puppet on Windows

Manifests

• Manifests are *.pp files (puppet files) - use the Puppet Language (also call Puppet DSL)

• Can include / require other *.pp files to break things down

Thursday, September 5, 13

Page 28: DevOps: Getting Started with Puppet on Windows

Manifests

Thursday, September 5, 13

Page 29: DevOps: Getting Started with Puppet on Windows

File Paths

• ‘C:\Windows\system32’

• ‘C:/Windows/system32’

• “C:\\Windows\\system32”

• Always use forward slashes except when path is being given to a windows program for evaluation

Thursday, September 5, 13

Page 30: DevOps: Getting Started with Puppet on Windows

Modules• Modules are collections of manifests,

classes, types, and providers

• Best way to extend core Puppet

• The Forge (http://forge.puppetlabs.com)

• 40+ Windows modules available

• More on GitHub

• puppet module search keyword

• puppet module install author-module

Thursday, September 5, 13

Page 31: DevOps: Getting Started with Puppet on Windows

DEMO

Thursday, September 5, 13