portable infrastructure with puppet
TRANSCRIPT
![Page 1: Portable infrastructure with puppet](https://reader033.vdocuments.site/reader033/viewer/2022050613/54528827af7959ce7f8b48f2/html5/thumbnails/1.jpg)
Portable Infrastructu
re with Puppet
Luke KaniesFounder of Puppet project
Founder and CEO of Puppet Labs
![Page 2: Portable infrastructure with puppet](https://reader033.vdocuments.site/reader033/viewer/2022050613/54528827af7959ce7f8b48f2/html5/thumbnails/2.jpg)
The state of Puppet
![Page 3: Portable infrastructure with puppet](https://reader033.vdocuments.site/reader033/viewer/2022050613/54528827af7959ce7f8b48f2/html5/thumbnails/3.jpg)
Puppet is stable
![Page 4: Portable infrastructure with puppet](https://reader033.vdocuments.site/reader033/viewer/2022050613/54528827af7959ce7f8b48f2/html5/thumbnails/4.jpg)
Puppet is changing quickly
• Still plenty of features to add
• Every day we learn, and every lesson brings a refactoring
• Maturity brings its own design requirements
• Connectiveness is a larger priority
![Page 5: Portable infrastructure with puppet](https://reader033.vdocuments.site/reader033/viewer/2022050613/54528827af7959ce7f8b48f2/html5/thumbnails/5.jpg)
Puppet is Pervasive
Financial
TechnologyEntertainmentWeb
Defense
![Page 6: Portable infrastructure with puppet](https://reader033.vdocuments.site/reader033/viewer/2022050613/54528827af7959ce7f8b48f2/html5/thumbnails/6.jpg)
I promised some things last year
![Page 7: Portable infrastructure with puppet](https://reader033.vdocuments.site/reader033/viewer/2022050613/54528827af7959ce7f8b48f2/html5/thumbnails/7.jpg)
Puppet Camp 2009 Promises
•1.0•Web GUI•Modules
![Page 8: Portable infrastructure with puppet](https://reader033.vdocuments.site/reader033/viewer/2022050613/54528827af7959ce7f8b48f2/html5/thumbnails/8.jpg)
Rowlf is imminent
![Page 9: Portable infrastructure with puppet](https://reader033.vdocuments.site/reader033/viewer/2022050613/54528827af7959ce7f8b48f2/html5/thumbnails/9.jpg)
0.2
![Page 10: Portable infrastructure with puppet](https://reader033.vdocuments.site/reader033/viewer/2022050613/54528827af7959ce7f8b48f2/html5/thumbnails/10.jpg)
0.20
![Page 11: Portable infrastructure with puppet](https://reader033.vdocuments.site/reader033/viewer/2022050613/54528827af7959ce7f8b48f2/html5/thumbnails/11.jpg)
1.0
![Page 12: Portable infrastructure with puppet](https://reader033.vdocuments.site/reader033/viewer/2022050613/54528827af7959ce7f8b48f2/html5/thumbnails/12.jpg)
1.00
![Page 13: Portable infrastructure with puppet](https://reader033.vdocuments.site/reader033/viewer/2022050613/54528827af7959ce7f8b48f2/html5/thumbnails/13.jpg)
2.6
![Page 14: Portable infrastructure with puppet](https://reader033.vdocuments.site/reader033/viewer/2022050613/54528827af7959ce7f8b48f2/html5/thumbnails/14.jpg)
Lots of refactoring, and a
lot of features
![Page 15: Portable infrastructure with puppet](https://reader033.vdocuments.site/reader033/viewer/2022050613/54528827af7959ce7f8b48f2/html5/thumbnails/15.jpg)
Pure Ruby DSL
![Page 16: Portable infrastructure with puppet](https://reader033.vdocuments.site/reader033/viewer/2022050613/54528827af7959ce7f8b48f2/html5/thumbnails/16.jpg)
Class Parameters
![Page 17: Portable infrastructure with puppet](https://reader033.vdocuments.site/reader033/viewer/2022050613/54528827af7959ce7f8b48f2/html5/thumbnails/17.jpg)
Finished migration to REST
Still working on publishing all of the formats and URLs
![Page 18: Portable infrastructure with puppet](https://reader033.vdocuments.site/reader033/viewer/2022050613/54528827af7959ce7f8b48f2/html5/thumbnails/18.jpg)
puppetmasterd puppet master
puppetd puppet agent
puppetca
ralsh
puppet cert
puppet resource
puppetdoc puppet doc
The single executable shift
![Page 19: Portable infrastructure with puppet](https://reader033.vdocuments.site/reader033/viewer/2022050613/54528827af7959ce7f8b48f2/html5/thumbnails/19.jpg)
More informative reports
Heavily trimmed
![Page 20: Portable infrastructure with puppet](https://reader033.vdocuments.site/reader033/viewer/2022050613/54528827af7959ce7f8b48f2/html5/thumbnails/20.jpg)
Exposing types and classes
![Page 21: Portable infrastructure with puppet](https://reader033.vdocuments.site/reader033/viewer/2022050613/54528827af7959ce7f8b48f2/html5/thumbnails/21.jpg)
Faster in many ways
• Compiles are much faster• File serving is streamed (thanks Brice!)• Lots of small improvements
![Page 22: Portable infrastructure with puppet](https://reader033.vdocuments.site/reader033/viewer/2022050613/54528827af7959ce7f8b48f2/html5/thumbnails/22.jpg)
Relationship syntax
![Page 23: Portable infrastructure with puppet](https://reader033.vdocuments.site/reader033/viewer/2022050613/54528827af7959ce7f8b48f2/html5/thumbnails/23.jpg)
Hashes
![Page 24: Portable infrastructure with puppet](https://reader033.vdocuments.site/reader033/viewer/2022050613/54528827af7959ce7f8b48f2/html5/thumbnails/24.jpg)
Taught us a lot about how (not) to
release
![Page 25: Portable infrastructure with puppet](https://reader033.vdocuments.site/reader033/viewer/2022050613/54528827af7959ce7f8b48f2/html5/thumbnails/25.jpg)
Dashboard is growing and prospering
“Web GUI”
![Page 26: Portable infrastructure with puppet](https://reader033.vdocuments.site/reader033/viewer/2022050613/54528827af7959ce7f8b48f2/html5/thumbnails/26.jpg)
Node classification
![Page 27: Portable infrastructure with puppet](https://reader033.vdocuments.site/reader033/viewer/2022050613/54528827af7959ce7f8b48f2/html5/thumbnails/27.jpg)
Reporting
![Page 28: Portable infrastructure with puppet](https://reader033.vdocuments.site/reader033/viewer/2022050613/54528827af7959ce7f8b48f2/html5/thumbnails/28.jpg)
Lots to come
• Automatically detect optional and required parameters
• Catalog and report correlation
• Discovery
• Harass Rein for more information!
![Page 29: Portable infrastructure with puppet](https://reader033.vdocuments.site/reader033/viewer/2022050613/54528827af7959ce7f8b48f2/html5/thumbnails/29.jpg)
Let’s go Back
![Page 30: Portable infrastructure with puppet](https://reader033.vdocuments.site/reader033/viewer/2022050613/54528827af7959ce7f8b48f2/html5/thumbnails/30.jpg)
Why does Puppet exist?
![Page 31: Portable infrastructure with puppet](https://reader033.vdocuments.site/reader033/viewer/2022050613/54528827af7959ce7f8b48f2/html5/thumbnails/31.jpg)
Embarrassment
![Page 32: Portable infrastructure with puppet](https://reader033.vdocuments.site/reader033/viewer/2022050613/54528827af7959ce7f8b48f2/html5/thumbnails/32.jpg)
Fear
![Page 33: Portable infrastructure with puppet](https://reader033.vdocuments.site/reader033/viewer/2022050613/54528827af7959ce7f8b48f2/html5/thumbnails/33.jpg)
A simple dream:
That sysadmins could reuse code
![Page 34: Portable infrastructure with puppet](https://reader033.vdocuments.site/reader033/viewer/2022050613/54528827af7959ce7f8b48f2/html5/thumbnails/34.jpg)
Enable focus on the value-add
Usually
Ideally
0 25.0 50.0 75.0 100.0
Things you have to doThings you want to do
![Page 35: Portable infrastructure with puppet](https://reader033.vdocuments.site/reader033/viewer/2022050613/54528827af7959ce7f8b48f2/html5/thumbnails/35.jpg)
The Problem
• No standardization
• 75% of IT budgets spent to maintain existing systems
• Code changes with the sysadmin
Every infrastructure
starts from scratch }
![Page 36: Portable infrastructure with puppet](https://reader033.vdocuments.site/reader033/viewer/2022050613/54528827af7959ce7f8b48f2/html5/thumbnails/36.jpg)
We needed a high-level
language for
![Page 37: Portable infrastructure with puppet](https://reader033.vdocuments.site/reader033/viewer/2022050613/54528827af7959ce7f8b48f2/html5/thumbnails/37.jpg)
Programming SysAdmin
Low-level, non-
portable, single-use
Assembly perl/shell/etc
Abstract, portable, reusable
C* Puppet
Shell scripts areassembly code
* For small values of abstract
![Page 38: Portable infrastructure with puppet](https://reader033.vdocuments.site/reader033/viewer/2022050613/54528827af7959ce7f8b48f2/html5/thumbnails/38.jpg)
So: The ultimate goal was code
reuse
![Page 39: Portable infrastructure with puppet](https://reader033.vdocuments.site/reader033/viewer/2022050613/54528827af7959ce7f8b48f2/html5/thumbnails/39.jpg)
We’ve built a platform that can
enable reuse
![Page 40: Portable infrastructure with puppet](https://reader033.vdocuments.site/reader033/viewer/2022050613/54528827af7959ce7f8b48f2/html5/thumbnails/40.jpg)
Now we just need to start sharing
![Page 41: Portable infrastructure with puppet](https://reader033.vdocuments.site/reader033/viewer/2022050613/54528827af7959ce7f8b48f2/html5/thumbnails/41.jpg)
Announcing:Puppet Forge
http://forge.puppetlabs.comhttp://projects.puppetlabs.com/projects/
module-site
![Page 42: Portable infrastructure with puppet](https://reader033.vdocuments.site/reader033/viewer/2022050613/54528827af7959ce7f8b48f2/html5/thumbnails/42.jpg)
Share the modules you’ve created
![Page 43: Portable infrastructure with puppet](https://reader033.vdocuments.site/reader033/viewer/2022050613/54528827af7959ce7f8b48f2/html5/thumbnails/43.jpg)
Find modules others have
![Page 44: Portable infrastructure with puppet](https://reader033.vdocuments.site/reader033/viewer/2022050613/54528827af7959ce7f8b48f2/html5/thumbnails/44.jpg)
Client-side tools
![Page 45: Portable infrastructure with puppet](https://reader033.vdocuments.site/reader033/viewer/2022050613/54528827af7959ce7f8b48f2/html5/thumbnails/45.jpg)
Extension metadata is
![Page 46: Portable infrastructure with puppet](https://reader033.vdocuments.site/reader033/viewer/2022050613/54528827af7959ce7f8b48f2/html5/thumbnails/46.jpg)
Minimum Viable Product (MVP)
![Page 47: Portable infrastructure with puppet](https://reader033.vdocuments.site/reader033/viewer/2022050613/54528827af7959ce7f8b48f2/html5/thumbnails/47.jpg)
It’s all about code reuse
![Page 48: Portable infrastructure with puppet](https://reader033.vdocuments.site/reader033/viewer/2022050613/54528827af7959ce7f8b48f2/html5/thumbnails/48.jpg)
Westheimer's Discovery:
A couple of months in the laboratory can
frequently save
![Page 49: Portable infrastructure with puppet](https://reader033.vdocuments.site/reader033/viewer/2022050613/54528827af7959ce7f8b48f2/html5/thumbnails/49.jpg)
Luke’s Corollary:
A couple of months of development can
frequently save a couple of hours on the internet.
![Page 50: Portable infrastructure with puppet](https://reader033.vdocuments.site/reader033/viewer/2022050613/54528827af7959ce7f8b48f2/html5/thumbnails/50.jpg)
Collaborate on existing code rather than
![Page 51: Portable infrastructure with puppet](https://reader033.vdocuments.site/reader033/viewer/2022050613/54528827af7959ce7f8b48f2/html5/thumbnails/51.jpg)
Or, start again and publish
![Page 52: Portable infrastructure with puppet](https://reader033.vdocuments.site/reader033/viewer/2022050613/54528827af7959ce7f8b48f2/html5/thumbnails/52.jpg)
A new forcing function in
![Page 53: Portable infrastructure with puppet](https://reader033.vdocuments.site/reader033/viewer/2022050613/54528827af7959ce7f8b48f2/html5/thumbnails/53.jpg)
Because there’s now a place for
all that metadata:• Classes, definitions, nodes, etc.• Required and optional parameters• Versions• Dependencies
![Page 54: Portable infrastructure with puppet](https://reader033.vdocuments.site/reader033/viewer/2022050613/54528827af7959ce7f8b48f2/html5/thumbnails/54.jpg)
Drives further introspection
in Puppet
![Page 55: Portable infrastructure with puppet](https://reader033.vdocuments.site/reader033/viewer/2022050613/54528827af7959ce7f8b48f2/html5/thumbnails/55.jpg)
We can add:
• Portability information - ‘confine’ in classes and modules
• Incompatibilities• “Tested on” information• Etc.
![Page 56: Portable infrastructure with puppet](https://reader033.vdocuments.site/reader033/viewer/2022050613/54528827af7959ce7f8b48f2/html5/thumbnails/56.jpg)
Pushes Dashboard to manage modules
![Page 57: Portable infrastructure with puppet](https://reader033.vdocuments.site/reader033/viewer/2022050613/54528827af7959ce7f8b48f2/html5/thumbnails/57.jpg)
Package-like behaviour in the
modules
![Page 58: Portable infrastructure with puppet](https://reader033.vdocuments.site/reader033/viewer/2022050613/54528827af7959ce7f8b48f2/html5/thumbnails/58.jpg)
Fills out the product portfolio
•The industry-leading open source automation platform•Supported with subscriptionPuppet
•A graphical view into your Puppet infrastructure•A simplified interface for many configuration actions
PuppetDashboard
•Collaborate with other IT administrators on Puppet content•Access Puppet Labs supported modulesPuppet Forge
![Page 59: Portable infrastructure with puppet](https://reader033.vdocuments.site/reader033/viewer/2022050613/54528827af7959ce7f8b48f2/html5/thumbnails/59.jpg)
AnyQuestion