SlideShare a Scribd company logo
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

More Related Content

PDF
Ops for Developers
PDF
UCLUG TorqueBox - 03/08/2011
PDF
Mars - ESUG 2010
PDF
Reef - ESUG 2010
PDF
Cloudy with a Chance of Fireballs: Provisioning and Certificate Management in...
PDF
Alessandro sf 2010
PDF
Adding Forge Modules to Puppet Enterprise
PDF
Backups with Exported Resources - Zach Leslie, Puppet Labs
Ops for Developers
UCLUG TorqueBox - 03/08/2011
Mars - ESUG 2010
Reef - ESUG 2010
Cloudy with a Chance of Fireballs: Provisioning and Certificate Management in...
Alessandro sf 2010
Adding Forge Modules to Puppet Enterprise
Backups with Exported Resources - Zach Leslie, Puppet Labs

Viewers also liked (14)

PDF
Scaling Puppet Usage to a Global Organization
PDF
The Puppet Community: Current State and Future Plans - PuppetConf 2014
PPTX
Puppet for Everybody! - Federated and Hierarchical Puppet Enterprise - Puppet...
PPTX
Puppet Camp DC: Puppet for Everybody
PDF
How Puppet Enables the Use of Lightweight Virtualized Containers - PuppetConf...
PPTX
Managing Network Security Monitoring at Large Scale with Puppet - PuppetConf ...
PDF
Running a Successful Puppet User Group - PuppetConf 2014
PDF
Infrastructure as Software - PuppetConf 2014
PDF
Continuous Delivery of Puppet-Based Infrastructure - PuppetConf 2014
PDF
Puppet Camp Atlanta 2014: r10k Puppet Workflow
PDF
“Sensu and Sensibility” - The Story of a Journey From #monitoringsucks to #mo...
PDF
Writing and Publishing Puppet Modules - PuppetConf 2014
PDF
R10K Workshop - PuppetConf 2014
PDF
Using Docker with Puppet - PuppetConf 2014
Scaling Puppet Usage to a Global Organization
The Puppet Community: Current State and Future Plans - PuppetConf 2014
Puppet for Everybody! - Federated and Hierarchical Puppet Enterprise - Puppet...
Puppet Camp DC: Puppet for Everybody
How Puppet Enables the Use of Lightweight Virtualized Containers - PuppetConf...
Managing Network Security Monitoring at Large Scale with Puppet - PuppetConf ...
Running a Successful Puppet User Group - PuppetConf 2014
Infrastructure as Software - PuppetConf 2014
Continuous Delivery of Puppet-Based Infrastructure - PuppetConf 2014
Puppet Camp Atlanta 2014: r10k Puppet Workflow
“Sensu and Sensibility” - The Story of a Journey From #monitoringsucks to #mo...
Writing and Publishing Puppet Modules - PuppetConf 2014
R10K Workshop - PuppetConf 2014
Using Docker with Puppet - PuppetConf 2014
Ad

Similar to Jeff mc cune sf 2010 (20)

PDF
The State of Puppet
PDF
Puppet buero20 presentation
PDF
Puppet and Telefonica R&D
PDF
Lessons I Learned While Scaling to 5000 Puppet Agents
PDF
Eclipse con 2012 - Frictionless operations with Puppet - Luke Kanies
PDF
State of Puppet
KEY
Keynote Puppet Camp San Francisco 2010
PPTX
Using puppet, foreman and git to develop and operate a large scale internet s...
PDF
Puppet 3: Present and Future Tense
PDF
Puppet 3: Present and Future Tense
PDF
20111110 how puppet-fits_into_your_existing_infrastructure_and_change_managem...
PDF
State of Puppet - Puppet Camp Barcelona 2013
PDF
DevOps Introduction @Cegeka
PDF
Eclipse Virgo presentation at OSGi Users' Forum UK (27 Apr 2010)
PDF
Puppet camp europe 2011 hackability
PDF
Puppet for Security Compliance - GOSCON 2010
PDF
Taming the Deployment Beast
PDF
Lightning talks percona live mysql_2012
PDF
Using Puppet - Real World Configuration Management
PDF
Staking Your Claim In Open Source
The State of Puppet
Puppet buero20 presentation
Puppet and Telefonica R&D
Lessons I Learned While Scaling to 5000 Puppet Agents
Eclipse con 2012 - Frictionless operations with Puppet - Luke Kanies
State of Puppet
Keynote Puppet Camp San Francisco 2010
Using puppet, foreman and git to develop and operate a large scale internet s...
Puppet 3: Present and Future Tense
Puppet 3: Present and Future Tense
20111110 how puppet-fits_into_your_existing_infrastructure_and_change_managem...
State of Puppet - Puppet Camp Barcelona 2013
DevOps Introduction @Cegeka
Eclipse Virgo presentation at OSGi Users' Forum UK (27 Apr 2010)
Puppet camp europe 2011 hackability
Puppet for Security Compliance - GOSCON 2010
Taming the Deployment Beast
Lightning talks percona live mysql_2012
Using Puppet - Real World Configuration Management
Staking Your Claim In Open Source
Ad

More from Puppet (20)

PPTX
Puppet Community Day: Planning the Future Together
PPTX
The Evolution of Puppet: Key Changes and Modernization Tips
PPTX
Can You Help Me Upgrade to Puppet 8? Tips, Tools & Best Practices for Your Up...
PPTX
Bolt Dynamic Inventory: Making Puppet Easier
PPTX
Customizing Reporting with the Puppet Report Processor
PPTX
Puppet at ConfigMgmtCamp 2025 Sponsor Deck
PPTX
The State of Puppet in 2025: A Presentation from Developer Relations Lead Dav...
PPTX
Let Red be Red and Green be Green: The Automated Workflow Restarter in GitHub...
PDF
Puppet camp2021 testing modules and controlrepo
PPTX
Puppetcamp r10kyaml
PDF
2021 04-15 operational verification (with notes)
PPTX
Puppet camp vscode
PDF
Modules of the twenties
PDF
Applying Roles and Profiles method to compliance code
PPTX
KGI compliance as-code approach
PDF
Enforce compliance policy with model-driven automation
PDF
Keynote: Puppet camp compliance
PPTX
Automating it management with Puppet + ServiceNow
PPTX
Puppet: The best way to harden Windows
PPTX
Simplified Patch Management with Puppet - Oct. 2020
Puppet Community Day: Planning the Future Together
The Evolution of Puppet: Key Changes and Modernization Tips
Can You Help Me Upgrade to Puppet 8? Tips, Tools & Best Practices for Your Up...
Bolt Dynamic Inventory: Making Puppet Easier
Customizing Reporting with the Puppet Report Processor
Puppet at ConfigMgmtCamp 2025 Sponsor Deck
The State of Puppet in 2025: A Presentation from Developer Relations Lead Dav...
Let Red be Red and Green be Green: The Automated Workflow Restarter in GitHub...
Puppet camp2021 testing modules and controlrepo
Puppetcamp r10kyaml
2021 04-15 operational verification (with notes)
Puppet camp vscode
Modules of the twenties
Applying Roles and Profiles method to compliance code
KGI compliance as-code approach
Enforce compliance policy with model-driven automation
Keynote: Puppet camp compliance
Automating it management with Puppet + ServiceNow
Puppet: The best way to harden Windows
Simplified Patch Management with Puppet - Oct. 2020

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