Jeff mc cune sf 2010

Puppet
PuppetPuppet
Are we compliant?
                            Auditing Change Management Policies
                                   with Splunk and Puppet

                             http://bit.ly/puppetsplunkslides



                                      Jeff McCune
                                       jeff@puppetlabs.com




Monday, October 11, 2010                                          1
Jeff McCune

                    • Joined Puppet Labs in May, 2010
                    • Former SA at Netsmart Technologies
                    • Solaris / RedHat Web App Infrastructure
                    • Human Health Information Systems
                    • HIPPA, SAS 70 Type II Compliance

Monday, October 11, 2010                                        2
What’s this all about?

              • Audits are a fact of life
              • Systems drift
              • Puppet Master manifests change
              • The logs provide no link
              • Puppet and Git in synchrony with Splunk

Monday, October 11, 2010                                  3
Fun with Regulations
                    • Increased focus on compliance
                    • SAS 70
                    • HIPPA
                    • IPA
                    • PCI DSS
                    • etc, etc...
Monday, October 11, 2010                              4
Compliance is Easy
                           Clones




                                     Golden VM


Monday, October 11, 2010                         5
Drifting in and out of
                                Compliance
                                          Follow procedures
                                           Justify the change
                                                 Firefighting
                                                   Inevitable
                                              Constant drift



Monday, October 11, 2010                                        6
The Trouble with Time
           • Are we compliant?
            • right now?
            • last week?
            • last year?
           • Why weren’t we?
           • Why is this difficult?
Monday, October 11, 2010                    7
Advanced Management
              • We have next-generation tools
               • Puppet
               • Git
               • Subversion
               • Splunk
               • Redmine
Monday, October 11, 2010                        8
Two major issues


                    • Propagation
                    • Time


Monday, October 11, 2010                      9
Change Propagation
                                      Many
                                      Nodes




                                       a872b46
                   Larry’s commit

Monday, October 11, 2010                         10
Time




               “Why did that one thing happen that one time?”


Monday, October 11, 2010                                        11
Bridge the Gap
                           Events           Commits




Monday, October 11, 2010                              12
The Missing Link
            • puppetmasterd  -­‐-­‐config-­‐version  
                       /demo/get-­‐config-­‐version-­‐script


            • [root@puppet  ~]#  /demo/get-­‐config-­‐version  
                   ref="refs/heads/jeff"  commit="b585f7fe"

            • Jeff’s processor, --reports=logversion
                   Should ship with puppet “soon”


Monday, October 11, 2010                                          13
get-config-version
             #!  /bin/bash
             set  -­‐u
             set  -­‐e
             cd  /demo/puppet-­‐demotools
             ref="$(git  symbolic-­‐ref  HEAD)"
             if  [[  -­‐f  .git/"${ref}"  ]];  then
                     commit="$(cat  .git/${ref})"
             else
                     commit="UNKNOWN"
             fi
             echo  "ref="${ref}"  commit="${commit}""


Monday, October 11, 2010                                    14
logversion.rb
             #  Create  logversion.rb  by  copying  log.rb
             def  process
                 self.logs.each  do  |log|
                     saved_message  =  "#{log.message}"
                     log.message  <<  "  "  <<  log.version
                     Puppet::Util::Log.newmessage(log)
                      log.message  =  saved_message
                 end
             end



Monday, October 11, 2010                                      15
Untagged Events




Monday, October 11, 2010                     16
Tagged Events




Monday, October 11, 2010                   17
Who to blame?
          Blame this guy           The commit proves it




Monday, October 11, 2010                                  18
Putting it all together


                    • Demo time!



Monday, October 11, 2010                             19
Steps to Reproduce
                    •      Fork and clone puppet-­‐demotools on github

                    •      logversion.rb goes into
                           /usr/lib/ruby/site_ruby/1.8/puppet/reports

                    •      --config_version /path/to/your/script

                    •      --reports=logversion,store

                    •      Make sure syslog catches daemon.* and splunk is
                           indexing syslog

                    •      Note: syslog outputs are off with -­‐-­‐verbose


Monday, October 11, 2010                                                     20
Future Work
                    • Commit hooks into puppetmasterd
                           activation and the ticketing system
                    • Splunk URLs to redmine, trac, salesforce...
                    • Closed loop from business case to system
                           modification by puppet.




Monday, October 11, 2010                                            21
Questions?

                    • Google Moderator
                    • http://bit.ly/arewecompliant?
                    • http://bit.ly/puppetsplunkslides
                    • Twitter: 0xEFF
                    • Email: jeff@puppetlabs.com

Monday, October 11, 2010                                 22
1 of 22

Recommended

Ops for Developers by
Ops for DevelopersOps for Developers
Ops for DevelopersMojo Lingo
492 views68 slides
UCLUG TorqueBox - 03/08/2011 by
UCLUG TorqueBox - 03/08/2011UCLUG TorqueBox - 03/08/2011
UCLUG TorqueBox - 03/08/2011tobiascrawley
487 views108 slides
Mars - ESUG 2010 by
Mars - ESUG 2010Mars - ESUG 2010
Mars - ESUG 2010Esteban Lorenzano
564 views35 slides
Reef - ESUG 2010 by
Reef - ESUG 2010Reef - ESUG 2010
Reef - ESUG 2010Esteban Lorenzano
769 views25 slides
Cloudy with a Chance of Fireballs: Provisioning and Certificate Management in... by
Cloudy with a Chance of Fireballs: Provisioning and Certificate Management in...Cloudy with a Chance of Fireballs: Provisioning and Certificate Management in...
Cloudy with a Chance of Fireballs: Provisioning and Certificate Management in...Puppet
1.8K views27 slides
Alessandro sf 2010 by
Alessandro sf 2010Alessandro sf 2010
Alessandro sf 2010Puppet
586 views45 slides

More Related Content

Viewers also liked

Scaling Puppet Usage to a Global Organization by
Scaling Puppet Usage to a Global OrganizationScaling Puppet Usage to a Global Organization
Scaling Puppet Usage to a Global OrganizationPuppet
1.6K views33 slides
The Puppet Community: Current State and Future Plans - PuppetConf 2014 by
The Puppet Community: Current State and Future Plans - PuppetConf 2014The Puppet Community: Current State and Future Plans - PuppetConf 2014
The Puppet Community: Current State and Future Plans - PuppetConf 2014Puppet
1.1K views35 slides
Puppet for Everybody! - Federated and Hierarchical Puppet Enterprise - Puppet... by
Puppet for Everybody! - Federated and Hierarchical Puppet Enterprise - Puppet...Puppet for Everybody! - Federated and Hierarchical Puppet Enterprise - Puppet...
Puppet for Everybody! - Federated and Hierarchical Puppet Enterprise - Puppet...Puppet
2.1K views46 slides
Puppet Camp DC: Puppet for Everybody by
Puppet Camp DC: Puppet for EverybodyPuppet Camp DC: Puppet for Everybody
Puppet Camp DC: Puppet for EverybodyPuppet
1.8K views38 slides
How Puppet Enables the Use of Lightweight Virtualized Containers - PuppetConf... by
How Puppet Enables the Use of Lightweight Virtualized Containers - PuppetConf...How Puppet Enables the Use of Lightweight Virtualized Containers - PuppetConf...
How Puppet Enables the Use of Lightweight Virtualized Containers - PuppetConf...Puppet
6.3K views50 slides
Managing Network Security Monitoring at Large Scale with Puppet - PuppetConf ... by
Managing Network Security Monitoring at Large Scale with Puppet - PuppetConf ...Managing Network Security Monitoring at Large Scale with Puppet - PuppetConf ...
Managing Network Security Monitoring at Large Scale with Puppet - PuppetConf ...Puppet
2.6K views39 slides

Viewers also liked(14)

Scaling Puppet Usage to a Global Organization by Puppet
Scaling Puppet Usage to a Global OrganizationScaling Puppet Usage to a Global Organization
Scaling Puppet Usage to a Global Organization
Puppet1.6K views
The Puppet Community: Current State and Future Plans - PuppetConf 2014 by Puppet
The Puppet Community: Current State and Future Plans - PuppetConf 2014The Puppet Community: Current State and Future Plans - PuppetConf 2014
The Puppet Community: Current State and Future Plans - PuppetConf 2014
Puppet1.1K views
Puppet for Everybody! - Federated and Hierarchical Puppet Enterprise - Puppet... by Puppet
Puppet for Everybody! - Federated and Hierarchical Puppet Enterprise - Puppet...Puppet for Everybody! - Federated and Hierarchical Puppet Enterprise - Puppet...
Puppet for Everybody! - Federated and Hierarchical Puppet Enterprise - Puppet...
Puppet2.1K views
Puppet Camp DC: Puppet for Everybody by Puppet
Puppet Camp DC: Puppet for EverybodyPuppet Camp DC: Puppet for Everybody
Puppet Camp DC: Puppet for Everybody
Puppet1.8K views
How Puppet Enables the Use of Lightweight Virtualized Containers - PuppetConf... by Puppet
How Puppet Enables the Use of Lightweight Virtualized Containers - PuppetConf...How Puppet Enables the Use of Lightweight Virtualized Containers - PuppetConf...
How Puppet Enables the Use of Lightweight Virtualized Containers - PuppetConf...
Puppet6.3K views
Managing Network Security Monitoring at Large Scale with Puppet - PuppetConf ... by Puppet
Managing Network Security Monitoring at Large Scale with Puppet - PuppetConf ...Managing Network Security Monitoring at Large Scale with Puppet - PuppetConf ...
Managing Network Security Monitoring at Large Scale with Puppet - PuppetConf ...
Puppet2.6K views
Running a Successful Puppet User Group - PuppetConf 2014 by Puppet
Running a Successful Puppet User Group - PuppetConf 2014Running a Successful Puppet User Group - PuppetConf 2014
Running a Successful Puppet User Group - PuppetConf 2014
Puppet771 views
Infrastructure as Software - PuppetConf 2014 by Puppet
Infrastructure as Software - PuppetConf 2014Infrastructure as Software - PuppetConf 2014
Infrastructure as Software - PuppetConf 2014
Puppet2.7K views
Continuous Delivery of Puppet-Based Infrastructure - PuppetConf 2014 by Puppet
Continuous Delivery of Puppet-Based Infrastructure - PuppetConf 2014Continuous Delivery of Puppet-Based Infrastructure - PuppetConf 2014
Continuous Delivery of Puppet-Based Infrastructure - PuppetConf 2014
Puppet3.6K views
Puppet Camp Atlanta 2014: r10k Puppet Workflow by Puppet
Puppet Camp Atlanta 2014: r10k Puppet WorkflowPuppet Camp Atlanta 2014: r10k Puppet Workflow
Puppet Camp Atlanta 2014: r10k Puppet Workflow
Puppet3.1K views
“Sensu and Sensibility” - The Story of a Journey From #monitoringsucks to #mo... by Puppet
“Sensu and Sensibility” - The Story of a Journey From #monitoringsucks to #mo...“Sensu and Sensibility” - The Story of a Journey From #monitoringsucks to #mo...
“Sensu and Sensibility” - The Story of a Journey From #monitoringsucks to #mo...
Puppet4.7K views
Writing and Publishing Puppet Modules - PuppetConf 2014 by Puppet
Writing and Publishing Puppet Modules - PuppetConf 2014Writing and Publishing Puppet Modules - PuppetConf 2014
Writing and Publishing Puppet Modules - PuppetConf 2014
Puppet2.5K views
R10K Workshop - PuppetConf 2014 by Puppet
R10K Workshop - PuppetConf 2014R10K Workshop - PuppetConf 2014
R10K Workshop - PuppetConf 2014
Puppet5.2K views
Using Docker with Puppet - PuppetConf 2014 by Puppet
Using Docker with Puppet - PuppetConf 2014Using Docker with Puppet - PuppetConf 2014
Using Docker with Puppet - PuppetConf 2014
Puppet45.3K views

Similar to Jeff mc cune sf 2010

Railsconf 2010 by
Railsconf 2010Railsconf 2010
Railsconf 2010John Woodell
2.3K views38 slides
Better Quality through Scrum by
Better Quality through ScrumBetter Quality through Scrum
Better Quality through ScrumDominik Jungowski
3.7K views80 slides
Is these a bug by
Is these a bugIs these a bug
Is these a bugMike Taylor
2.9K views32 slides
Puppet buero20 presentation by
Puppet buero20 presentationPuppet buero20 presentation
Puppet buero20 presentationMartin Alfke
1.3K views68 slides
Plone on RelStorage by
Plone on RelStoragePlone on RelStorage
Plone on RelStorageCalvin Hendryx-Parker
1.8K views22 slides
"How Mozilla Uses Selenium" by
"How Mozilla Uses Selenium""How Mozilla Uses Selenium"
"How Mozilla Uses Selenium"Stephen Donner
27.3K views24 slides

Similar to Jeff mc cune sf 2010(20)

Is these a bug by Mike Taylor
Is these a bugIs these a bug
Is these a bug
Mike Taylor2.9K views
Puppet buero20 presentation by Martin Alfke
Puppet buero20 presentationPuppet buero20 presentation
Puppet buero20 presentation
Martin Alfke1.3K views
"How Mozilla Uses Selenium" by Stephen Donner
"How Mozilla Uses Selenium""How Mozilla Uses Selenium"
"How Mozilla Uses Selenium"
Stephen Donner27.3K views
DevSecCon Boston 2018: My rage quit journey: configuring Netflix tools by Sar... by DevSecCon
DevSecCon Boston 2018: My rage quit journey: configuring Netflix tools by Sar...DevSecCon Boston 2018: My rage quit journey: configuring Netflix tools by Sar...
DevSecCon Boston 2018: My rage quit journey: configuring Netflix tools by Sar...
DevSecCon889 views
Gaelyk - SpringOne2GX - 2010 - Guillaume Laforge by Guillaume Laforge
Gaelyk - SpringOne2GX - 2010 - Guillaume LaforgeGaelyk - SpringOne2GX - 2010 - Guillaume Laforge
Gaelyk - SpringOne2GX - 2010 - Guillaume Laforge
Guillaume Laforge763 views
Gerenciamento Servidores com o Spacewalk by hdoria
Gerenciamento Servidores com o SpacewalkGerenciamento Servidores com o Spacewalk
Gerenciamento Servidores com o Spacewalk
hdoria673 views
Clouds against the Floods (RubyConfBR2011) by Leonardo Borges
Clouds against the Floods (RubyConfBR2011) Clouds against the Floods (RubyConfBR2011)
Clouds against the Floods (RubyConfBR2011)
Leonardo Borges1.9K views
BDD and Cucumber at barcampGZ by leondu
BDD and Cucumber at barcampGZBDD and Cucumber at barcampGZ
BDD and Cucumber at barcampGZ
leondu737 views
Conquistando el Servidor con Node.JS by Caridy Patino
Conquistando el Servidor con Node.JSConquistando el Servidor con Node.JS
Conquistando el Servidor con Node.JS
Caridy Patino1.8K views
Web Development With Ruby - From Simple To Complex by Brian Hogan
Web Development With Ruby - From Simple To ComplexWeb Development With Ruby - From Simple To Complex
Web Development With Ruby - From Simple To Complex
Brian Hogan4.8K views
The Reluctant SysAdmin : 360|iDev Austin 2010 by Voxilate
The Reluctant SysAdmin : 360|iDev Austin 2010The Reluctant SysAdmin : 360|iDev Austin 2010
The Reluctant SysAdmin : 360|iDev Austin 2010
Voxilate473 views

More from Puppet

Puppet camp2021 testing modules and controlrepo by
Puppet camp2021 testing modules and controlrepoPuppet camp2021 testing modules and controlrepo
Puppet camp2021 testing modules and controlrepoPuppet
1.5K views41 slides
Puppetcamp r10kyaml by
Puppetcamp r10kyamlPuppetcamp r10kyaml
Puppetcamp r10kyamlPuppet
192 views10 slides
2021 04-15 operational verification (with notes) by
2021 04-15 operational verification (with notes)2021 04-15 operational verification (with notes)
2021 04-15 operational verification (with notes)Puppet
148 views14 slides
Puppet camp vscode by
Puppet camp vscodePuppet camp vscode
Puppet camp vscodePuppet
148 views4 slides
Modules of the twenties by
Modules of the twentiesModules of the twenties
Modules of the twentiesPuppet
848 views27 slides
Applying Roles and Profiles method to compliance code by
Applying Roles and Profiles method to compliance codeApplying Roles and Profiles method to compliance code
Applying Roles and Profiles method to compliance codePuppet
213 views17 slides

More from Puppet(20)

Puppet camp2021 testing modules and controlrepo by Puppet
Puppet camp2021 testing modules and controlrepoPuppet camp2021 testing modules and controlrepo
Puppet camp2021 testing modules and controlrepo
Puppet1.5K views
Puppetcamp r10kyaml by Puppet
Puppetcamp r10kyamlPuppetcamp r10kyaml
Puppetcamp r10kyaml
Puppet192 views
2021 04-15 operational verification (with notes) by Puppet
2021 04-15 operational verification (with notes)2021 04-15 operational verification (with notes)
2021 04-15 operational verification (with notes)
Puppet148 views
Puppet camp vscode by Puppet
Puppet camp vscodePuppet camp vscode
Puppet camp vscode
Puppet148 views
Modules of the twenties by Puppet
Modules of the twentiesModules of the twenties
Modules of the twenties
Puppet848 views
Applying Roles and Profiles method to compliance code by Puppet
Applying Roles and Profiles method to compliance codeApplying Roles and Profiles method to compliance code
Applying Roles and Profiles method to compliance code
Puppet213 views
KGI compliance as-code approach by Puppet
KGI compliance as-code approachKGI compliance as-code approach
KGI compliance as-code approach
Puppet159 views
Enforce compliance policy with model-driven automation by Puppet
Enforce compliance policy with model-driven automationEnforce compliance policy with model-driven automation
Enforce compliance policy with model-driven automation
Puppet181 views
Keynote: Puppet camp compliance by Puppet
Keynote: Puppet camp complianceKeynote: Puppet camp compliance
Keynote: Puppet camp compliance
Puppet159 views
Automating it management with Puppet + ServiceNow by Puppet
Automating it management with Puppet + ServiceNowAutomating it management with Puppet + ServiceNow
Automating it management with Puppet + ServiceNow
Puppet555 views
Puppet: The best way to harden Windows by Puppet
Puppet: The best way to harden WindowsPuppet: The best way to harden Windows
Puppet: The best way to harden Windows
Puppet364 views
Simplified Patch Management with Puppet - Oct. 2020 by Puppet
Simplified Patch Management with Puppet - Oct. 2020Simplified Patch Management with Puppet - Oct. 2020
Simplified Patch Management with Puppet - Oct. 2020
Puppet342 views
Accelerating azure adoption with puppet by Puppet
Accelerating azure adoption with puppetAccelerating azure adoption with puppet
Accelerating azure adoption with puppet
Puppet241 views
Puppet catalog Diff; Raphael Pinson by Puppet
Puppet catalog Diff; Raphael PinsonPuppet catalog Diff; Raphael Pinson
Puppet catalog Diff; Raphael Pinson
Puppet215 views
ServiceNow and Puppet- better together, Kevin Reeuwijk by Puppet
ServiceNow and Puppet- better together, Kevin ReeuwijkServiceNow and Puppet- better together, Kevin Reeuwijk
ServiceNow and Puppet- better together, Kevin Reeuwijk
Puppet248 views
Take control of your dev ops dumping ground by Puppet
Take control of your  dev ops dumping groundTake control of your  dev ops dumping ground
Take control of your dev ops dumping ground
Puppet246 views
100% Puppet Cloud Deployment of Legacy Software by Puppet
100% Puppet Cloud Deployment of Legacy Software100% Puppet Cloud Deployment of Legacy Software
100% Puppet Cloud Deployment of Legacy Software
Puppet188 views
Puppet User Group by Puppet
Puppet User GroupPuppet User Group
Puppet User Group
Puppet196 views
Continuous Compliance and DevSecOps by Puppet
Continuous Compliance and DevSecOpsContinuous Compliance and DevSecOps
Continuous Compliance and DevSecOps
Puppet259 views
The Dynamic Duo of Puppet and Vault tame SSL Certificates, Nick Maludy by Puppet
The Dynamic Duo of Puppet and Vault tame SSL Certificates, Nick MaludyThe Dynamic Duo of Puppet and Vault tame SSL Certificates, Nick Maludy
The Dynamic Duo of Puppet and Vault tame SSL Certificates, Nick Maludy
Puppet240 views

Jeff mc cune sf 2010

  • 1. Are we compliant? Auditing Change Management Policies with Splunk and Puppet http://bit.ly/puppetsplunkslides Jeff McCune jeff@puppetlabs.com Monday, October 11, 2010 1
  • 2. Jeff McCune • Joined Puppet Labs in May, 2010 • Former SA at Netsmart Technologies • Solaris / RedHat Web App Infrastructure • Human Health Information Systems • HIPPA, SAS 70 Type II Compliance Monday, October 11, 2010 2
  • 3. What’s this all about? • Audits are a fact of life • Systems drift • Puppet Master manifests change • The logs provide no link • Puppet and Git in synchrony with Splunk Monday, October 11, 2010 3
  • 4. Fun with Regulations • Increased focus on compliance • SAS 70 • HIPPA • IPA • PCI DSS • etc, etc... Monday, October 11, 2010 4
  • 5. Compliance is Easy Clones Golden VM Monday, October 11, 2010 5
  • 6. Drifting in and out of Compliance Follow procedures Justify the change Firefighting Inevitable Constant drift Monday, October 11, 2010 6
  • 7. The Trouble with Time • Are we compliant? • right now? • last week? • last year? • Why weren’t we? • Why is this difficult? Monday, October 11, 2010 7
  • 8. Advanced Management • We have next-generation tools • Puppet • Git • Subversion • Splunk • Redmine Monday, October 11, 2010 8
  • 9. Two major issues • Propagation • Time Monday, October 11, 2010 9
  • 10. Change Propagation Many Nodes a872b46 Larry’s commit Monday, October 11, 2010 10
  • 11. Time “Why did that one thing happen that one time?” Monday, October 11, 2010 11
  • 12. Bridge the Gap Events Commits Monday, October 11, 2010 12
  • 13. The Missing Link • puppetmasterd  -­‐-­‐config-­‐version      /demo/get-­‐config-­‐version-­‐script • [root@puppet  ~]#  /demo/get-­‐config-­‐version   ref="refs/heads/jeff"  commit="b585f7fe" • Jeff’s processor, --reports=logversion Should ship with puppet “soon” Monday, October 11, 2010 13
  • 14. get-config-version #!  /bin/bash set  -­‐u set  -­‐e cd  /demo/puppet-­‐demotools ref="$(git  symbolic-­‐ref  HEAD)" if  [[  -­‐f  .git/"${ref}"  ]];  then        commit="$(cat  .git/${ref})" else        commit="UNKNOWN" fi echo  "ref="${ref}"  commit="${commit}"" Monday, October 11, 2010 14
  • 15. logversion.rb #  Create  logversion.rb  by  copying  log.rb def  process    self.logs.each  do  |log|        saved_message  =  "#{log.message}"        log.message  <<  "  "  <<  log.version        Puppet::Util::Log.newmessage(log)      log.message  =  saved_message    end end Monday, October 11, 2010 15
  • 18. Who to blame? Blame this guy The commit proves it Monday, October 11, 2010 18
  • 19. Putting it all together • Demo time! Monday, October 11, 2010 19
  • 20. Steps to Reproduce • Fork and clone puppet-­‐demotools on github • logversion.rb goes into /usr/lib/ruby/site_ruby/1.8/puppet/reports • --config_version /path/to/your/script • --reports=logversion,store • Make sure syslog catches daemon.* and splunk is indexing syslog • Note: syslog outputs are off with -­‐-­‐verbose Monday, October 11, 2010 20
  • 21. Future Work • Commit hooks into puppetmasterd activation and the ticketing system • Splunk URLs to redmine, trac, salesforce... • Closed loop from business case to system modification by puppet. Monday, October 11, 2010 21
  • 22. Questions? • Google Moderator • http://bit.ly/arewecompliant? • http://bit.ly/puppetsplunkslides • Twitter: 0xEFF • Email: jeff@puppetlabs.com Monday, October 11, 2010 22