Using Puppet - Real World Configuration Management


Published on

Configuration management is the oft-misunderstood (and possibly black) art of managing your IT environment, infrastructure, and costs. Done well it can reduce operational errors and outages, simplify your environment, and help maintain the sanity of your IT staff.

Puppet is part of the bright future of configuration management for heterogeneous Unix systems. It combines automation, a powerful abstraction language, and uses a client-server model that can scale to suit enterprise-size environments. Puppet is written in Ruby and authored by recovering system administrator-turned-developer Luke Kanies.

This session explains why configuration management is important, the benefits configuration management will deliver, and how all of this can be achieved using Puppet. The session also explains emerging best practices in configuration management and addresses:

* What is configuration management? Or why am I here?
* Benefits, risks, and challenges: build fire resistant infrastructure rather than fight fires
* Best practice: how do we do this configuration management magic right?
* Where does Puppet fit in and why should management pay for its implementation?
* Why using Puppet will save you money and help staff retention (although is unlikely to stop world hunger)
* Real world configuration management using Puppet: code, examples, explanations, and using Puppet in anger
* Measuring the results and pocketing the returns
* Where to from here: some ideas about the future (may include wild-arse guesses)

Published in: Technology
  • Be the first to comment

Using Puppet - Real World Configuration Management

  1. 1. Using Puppet Real World Configuration Management James Turnbull
  2. 2. Questions… Feel free to ask questions
  3. 3. Where do I come from?
  4. 4. Configuration Management?
  5. 5. Management Speak • Management model for:  Infrastructure  Applications  Data • Documentation of attributes and operations • Organization of attributes and operations • Validation, audit, and verification
  6. 6. Where does it fit in?
  7. 7. Do you need it? Large number of like hosts … that are somehow never alike
  8. 8. Do you need it? High level of failed change
  9. 9. Do you need it? When your hosts look like this...
  10. 10. Just for enterprises? “Mum, what’s an enterprise?”
  11. 11. What are the benefits? Reproducibility Accuracy Homogeneity Decision Support Saves Money!
  12. 12. all this gets you ...
  13. 13. Risks & Challenges Tools != Process Information is power Accurate information is all-powerful
  14. 14. Best practice Life cycle Categorize, modularize, standardize Control Test, Test, and Test again
  15. 15. Who sells this? Proprietary software vendors
  16. 16. So what’s wrong? Archaic Monolithic
  17. 17. Who gives this away? Free Open Source Software
  18. 18. Introducing puppet Andrew Luke Photo from:
  19. 19. Would you buy software from those guys?
  20. 20. The key pieces Abstracts configuration as resources Allows relationships Idempotent
  21. 21. How is it managed? Declarative not imperative language WHAT not HOW
  22. 22. Puppet…. package { “ruby”: ensure => latest, }
  23. 23. Not Puppet… # yum install ruby # up2date ruby # apt-get install ruby # fink install ruby # ports install ruby # pkg_add ruby # emerge ruby # pkg-get ruby # rpm -Uvh ruby-1.8.6.i386.rpm # rug install ruby # gem install ruby # pkgadd ruby
  24. 24. A whole service... yum install bind vim /etc/named.conf service start named package { bind: ensure => installed } file { “/etc/named.conf”: source => “puppet://server/srv/bind/named.conf” } service { named: ensure => running }
  25. 25. Puppet Client-Server model SSL communication Unix-centric Highly extensible Written in Ruby
  26. 26. What’s new? New support for Zenoss Native support for Augeas Enhanced conditionals Automated documentation of modules Native support for SELinux Microsoft Windows support on the way!
  27. 27. What can be managed? 30 package types Users & groups Services Nagios Support for Debian, Ubuntu, Red Hat, Solaris, OS X, Gentoo, SuSE, *BSD, AIX, HP-UX and others.
  28. 28. In the clouds... Spacewalk Capistrano Augeas Amazon (E2, S3, SQS) Func Cloud tools on the way... Cobbler Kickstart Preseed
  29. 29. Classes & definitions class postfix { … collection of resources … } define postfix_files { ... Repeatable application … }
  30. 30. Modules Collections of classes, definitions and resources Portable and self-contained Several collections of modules available online for common configurations:
  31. 31. Nodes node “” { include webserver } node “db1”, “db2”, “db3” { include database } Nodes also support inheritance
  32. 32. Let’s all get related… You can apply resources before other resources After other resources In response to other resources Or even subscribe to resource changes
  33. 33. Language Attributes Arrays [ “red”, “green”, “blue” ] Variables $variable = value Conditionals If/else statements Case statement Selectors
  34. 34. Templates Allows you to create template configuration files For file-based configurations without types Uses Ruby ERB Allows population of templates with Puppet configuration, variables and facts
  35. 35. Facter System inventory tool Returns facts about hosts Detects changes and updates information Facts can be used in Puppet configurations You can create custom facts NEW! Windows fact support!
  36. 36. facts hostname => absinthe ipaddress => kernel => Linux
  37. 37. Measuring success Availability Reduction in incidents Rate of failed change Build time and speed to market Compliance to SOE, policy & standards
  38. 38. Do more with less? Doesn’t mean head count cuts Doesn’t mean budget cuts More time to work on the projects that count Better use of time means happier people
  39. 39. The future ….
  40. 40. The future is ... REST APIs Better performance Better memory use Automated plug-in system Automated module system
  41. 41. The future is ... Workflow systems Service Level Management Compliance & Governance systems Inventory
  42. 42. Puppetshow
  43. 43. iClassify
  44. 44. PuppetView
  45. 45. Questions? Puppet Pulling Strings With Puppet © All images from Flickr and copyright to their owners