Slide 1

Slide 1 text

Using Puppet and DSC to Report on Environment Change James Pogran Senior Software Engineer - Windows Puppet

Slide 2

Slide 2 text

> Get-Agenda • Importance of Change Reporting • How DSC does Change Reporting • How Puppet improves Change Reporting

Slide 3

Slide 3 text

> whoami • At Puppet for over 2 years • Puppet Modules • Core Agent and Installer • PDK • Puppet VS Code extension

Slide 4

Slide 4 text

> whoami • http://jamespogran.com • @ender2025

Slide 5

Slide 5 text

Change Reporting

Slide 6

Slide 6 text

Change Reporting Why is it important?

Slide 7

Slide 7 text

No content

Slide 8

Slide 8 text

Change Reporting Knowledge is power

Slide 9

Slide 9 text

More frequent Code deployments 46x That’s the difference between multiple times per day and once a week or less. Faster lead time from commit to deploy 440x That’s the difference between less than an hour and more than a week.

Slide 10

Slide 10 text

96x faster mean time to recover from downtime That means high performers recover in less than an hour instead of several days. 5x lower change failure rate That means high performers’ changes fail 7.5% of the time instead of 38.5%.

Slide 11

Slide 11 text

Change Reporting Time spent looking is time wasted

Slide 12

Slide 12 text

Change Reporting It should be automatic

Slide 13

Slide 13 text

Change Reporting It needs to be recorded

Slide 14

Slide 14 text

Those who cannot remember the past are condemned to repeat it. - George Santayana

Slide 15

Slide 15 text

DSC Change Reporting

Slide 16

Slide 16 text

PowerShell DSC A primer

Slide 17

Slide 17 text

PowerShell DSC Primer 1. DSC Configurations 2. DSC Resources 3. Local Configuration Manager (LCM)

Slide 18

Slide 18 text

No content

Slide 19

Slide 19 text

No content

Slide 20

Slide 20 text

No content

Slide 21

Slide 21 text

DSC Deployment Modes DSC Push Mode • One time execution of DSC Configurations • Does not distribute DSC Resources • Does not store results from DSC execution

Slide 22

Slide 22 text

DSC Deployment Modes DSC Push Mode • One time execution of DSC Configurations • Does not distribute DSC Resources • Does not store results from DSC execution DSC Pull Server • Stores and executes DSC Configurations • Distributes DSC Resources • Maintains registry of nodes • Stores data from each DSC execution

Slide 23

Slide 23 text

DSC Change Event Types

Slide 24

Slide 24 text

DSC Change Event Types

Slide 25

Slide 25 text

PowerShell DSC Ok, really, how do we get the change data?

Slide 26

Slide 26 text

Getting DSC Change Events • Query change events using REST API • Use any script/command capable of web calls • PowerShell to the rescue! Maybe…

Slide 27

Slide 27 text

Demo Getting DSC Change Events

Slide 28

Slide 28 text

Puppet Change Reporting Puppet & DSC Together

Slide 29

Slide 29 text

Puppet A Primer

Slide 30

Slide 30 text

Puppet Primer 1. Puppet Manifests 2. Puppet Modules 3. Puppet Agent

Slide 31

Slide 31 text

No content

Slide 32

Slide 32 text

No content

Slide 33

Slide 33 text

Puppet Enterprise Deployment Modes • Stores and distributes manifests, modules and files • Maintains a registry of nodes • Stores data from each Puppet execution

Slide 34

Slide 34 text

Puppet Change Event Types • Failure • Corrective Change • Intentional Change • Corrective no-op • Intentional no-op • Skip

Slide 35

Slide 35 text

Puppet Change Event Types • Failure • Corrective Change • Intentional Change • Corrective no-op • Intentional no-op • Skip

Slide 36

Slide 36 text

Puppet Property based change events

Slide 37

Slide 37 text

View Puppet Change Events • PE Console to view results • Visual representation of target node status • Detailed information on change status

Slide 38

Slide 38 text

Puppet Change Reporting • Entire environment at a glance

Slide 39

Slide 39 text

Puppet Change Reporting • Event summary

Slide 40

Slide 40 text

Puppet Change Reporting • Granular filtering

Slide 41

Slide 41 text

Demo Puppet & DSC together

Slide 42

Slide 42 text

> Get-Summary Puppet provides • A single way to view change events across all nodes without manual effort • Reports for most use cases built in • Queryable API provides customized reporting • Information collated for you without have to do extra configuration

Slide 43

Slide 43 text

> Get-Help -full • Code available at https://github.com/jpogran/presentations/puppetconf/puppetconf2017 • Beginners guide to install PE: https://puppet.com/blog/how-get-started-puppet-beginners- guide • Windows on the Puppet blog: https://puppet.com/blog-tags/windows • Glenn Sarti – How to Not Freak out When you Start Writing Puppet Modules for Windows https://youtu.be/9A2-_nPrqfs

Slide 44

Slide 44 text

Questions? Thanks for listening!

Slide 45

Slide 45 text

No content