James Turnbull delivers the 'State of Puppet' at Puppet Camp NY 2013. PuppetCamp Bonus: 25% off a Puppet Certification Exam! Use code PU2551959831 at http://bit.ly/Sv3tQa through the end of September.
14. New Approach: Software
Defined Infrastructure
1. DEFINE 2. SIMULATE
4. REPORT
Re-usable infrastructure-as-code Before deploying changes
Automatically and reliablyInsight into changes
DESIRED
STATE
CURRENT
STATE
3. ENFORCE
}
Friday, May 3, 13
15. Lifecycle of a Puppet Run
1. Facts
The node sends data about its state
to the puppet master server.
2.#Catalog#
Puppet&uses&the&facts&to&compile&a&
Catalog&that&specifies&how&the&node&
should&be&configured.&
3.#&Report#
Configura9on&changes&are&reported&
back&to&the&Puppet&Master.
4.#&Report#
Puppet's&open&API&can&also&send&data&
to&3rd&party&tools.&
1 Facts 2 Catalog#
Node#
3 Report#
4 Report#
Report#Collector#
Friday, May 3, 13
16. Puppet
Architecture
Web Server Database ServerApplication Server
Reporting
GUI &
Workflows
Content
Admin &
Security
Virtual Machine CloudHardware
PUPPET MASTER SERVER
PUPPET
AGENT
PUPPET FORGE CONTENT MARKETPLACE
PUPPET
AGENT
PUPPET
AGENT
PUPPET OPEN SOURCE PLATFORM
Friday, May 3, 13
18. Strong Community
Forum Members Jan 2012 March 2013
puppet-users list 3588 5531
puppet-dev list 724 994
ask.puppetlabs.com N/A 336
#puppet 600 999
Repository Jan 2012 March 2013
Puppet Forks 236 533
Puppet Watchers 526 1230
Friday, May 3, 13
19. Easy to Get Involved
• Help with Documentation
• Ask/Answer questions
• http://ask.puppetlabs.com
• mailing lists
• IRC
• Help with bug triage
• Contribute code
• Contribute modules on the Forge
• Visit https://puppetlabs.com/community to learn
more
Friday, May 3, 13
20. AUGUST 22 - 23
http://puppetconf.com
Friday, May 3, 13
24. GUI for Puppet
High-level status of nodes
for instant visibility
Time%based*display*for*insight*into*rate*of*change*
Detail*of*node*status*to*pinpoint*specific*issues*
Friday, May 3, 13
32. Scope
# dynamic scoping is gone
class parent {
$var = "from parent"
include included
}
class included {
notify { $var: } ## NOT GONNA WORK
notify { $parent::var: } ## YUP
Friday, May 3, 13
33. class ntp($server = hiera(ntp_server,
‘time.apple.com’)) {
...
}
# can be changed to
class ntp($ntpserver = ‘time.apple.com’) {
...
}
Data Binding
Friday, May 3, 13
39. Puppet Armatures (ARM)
• Proposals to enhance / add features to Puppet or
other projects in the Puppet eco-system
• ARM is a process for collecting,reviewing,sorting,
and recording the result of proposals for
enhancements
• Used for work that require 2+ weeks effort, has
significant changes,is in high demand,or contains
changes to Puppet Language / evaluation semantics
• Community-focused process to improve openness
and transparency for Puppet Labs-funded and
contributor efforts
github.com/puppetlabs/armatures
Friday, May 3, 13
40. The Puppet Forge
• Repository of modules
• Written by the community
• Written for the community
• Identify the best ones out there
• Great place to contribute your own modules
Friday, May 3, 13
41. Forge By the Numbers
Jan 2012 April 2013
Modules 260 1050+
Users 930 2325+
Total Downloads
Since Feb 2012
588,000+
Friday, May 3, 13
42. MCollective
• Framework to build server orchestration
• Parallel job execution
• Real-time discovery of resources
• Target only the systems you want
Friday, May 3, 13
43. MCollective 2.2.x
• Network discovery completely pluggable
• Sources of Truth:
• network,database,file,anything
• Result Summarization in the DDL
• Shell Completion support
• ships with zsh and bash examples
Friday, May 3, 13
44. MCollective 2.2.x - Puppet Agent
• http://srt.ly/mcpuppet
• Orchestrates deployments
• Manages Puppet agent runs,supports:
• noop,tags,splay,environments,server
• enable/disable,custom lock messages
• current status,most recent run status
• Manages resource usage on the Puppet Master
• Throttle # of simultaneous runs
Friday, May 3, 13
49. PuppetDB
• Central storage for catalogs and facts that are part of
your puppet infrastructure
• Incredibly fast replacement for existing
ActiveRecord storeconfigs
• Easily deployed via a puppet module from the Forge
Friday, May 3, 13
50. PuppetDB
• PuppetDB 1.1 released
• Enhanced Query API for
facts,subqueries,regular
expressions
• Report Storage
• Report Query in an
experimental API
Friday, May 3, 13
51. Razor Provisioning
• Rules-based provisioning for bare metal hardware
and virtual servers
• Developed in cooperation with EMC
• Easily deployed via a puppet module from the Forge
• Automatically brings the new server into your
puppet infrastructure
• Open,pluggable,and programmable
Friday, May 3, 13
52. Razor Present and Future
• Security audits,fixes in the 0.9.0 release
• Not yet ready for prime time
• Help us get it there
• File bugs,contribute to the community
Friday, May 3, 13
53. Hiera
• Simple pluggable Hierarchical Database
• Key/value lookup tool for configuration data
• Keeps site-specific data out of your manifests
• Puppet classes request data and Hiera will act like a
site-wide config file
• Makes it easy to configure nodes,re-use Puppet
modules and publish your modules
• Support is built into Puppet 3,and is available as an
add-on for Puppet 2.7
Friday, May 3, 13
54. Facter 1.7
• External Facts!
https://docs.puppetlabs.com/guides/custom_facts.html#external-facts
• Any executable in the facts.d directory is a fact
• Just return key/value pairs on STDOUT
• Windows
• .com .exe .bat .ps1 supported
• Also supports structured data files in facts.d
• .yaml .json .txt supported
Friday, May 3, 13
57. Puppet Labs: by the numbers
Jan 2012 April 2013
Employees 55 134
Customer Countries 29 42
Office Space
836 m2
9,000 ft2
2,232 m2
25,000 ft2
Friday, May 3, 13
58. Awesome Espresso & Tea
Weekly Company Lunch
Puppet Labs: A Great Place to Work!
Photos by Gary Larizza
Friday, May 3, 13