10 Things I Wish I'd Known When I Started Using Puppet
-
Upload
paul-anderson -
Category
Software
-
view
196 -
download
0
Transcript of 10 Things I Wish I'd Known When I Started Using Puppet
![Page 2: 10 Things I Wish I'd Known When I Started Using Puppet](https://reader035.fdocuments.us/reader035/viewer/2022062401/58eea7a21a28ab97558b4611/html5/thumbnails/2.jpg)
% facter paul
Alliteration => “Affirmative” }
Top500 => “7 systems”,
SME => [ “HPC”, “Supercomputing” ],
Puppet_employee => “9 months”,Puppet_user => “2 years”,
Consultant => “10 years”,{ Admin => “21 years”,
![Page 3: 10 Things I Wish I'd Known When I Started Using Puppet](https://reader035.fdocuments.us/reader035/viewer/2022062401/58eea7a21a28ab97558b4611/html5/thumbnails/3.jpg)
1. Puppet Projects, POCs and Pilots get Pressed into Production
![Page 4: 10 Things I Wish I'd Known When I Started Using Puppet](https://reader035.fdocuments.us/reader035/viewer/2022062401/58eea7a21a28ab97558b4611/html5/thumbnails/4.jpg)
Plan for Production
![Page 5: 10 Things I Wish I'd Known When I Started Using Puppet](https://reader035.fdocuments.us/reader035/viewer/2022062401/58eea7a21a28ab97558b4611/html5/thumbnails/5.jpg)
2. Puppet Code is Powerful“With great power comes great responsibility”
- Uncle Ben Parker
![Page 6: 10 Things I Wish I'd Known When I Started Using Puppet](https://reader035.fdocuments.us/reader035/viewer/2022062401/58eea7a21a28ab97558b4611/html5/thumbnails/6.jpg)
6
With Puppet You Get:
Beware the siren call of the exec resource!
Desired State Model
Fact-based Configuration Management
System State Information
Reporting & Audit Trails
Catalog Idempotency
Consistent Additive Improvement
![Page 7: 10 Things I Wish I'd Known When I Started Using Puppet](https://reader035.fdocuments.us/reader035/viewer/2022062401/58eea7a21a28ab97558b4611/html5/thumbnails/7.jpg)
3. No Obfuscated Puppet CodeBrilliant Puppet code is easy to read, not indecipherable…Don’t get stuck maintaining your codebase forever
![Page 8: 10 Things I Wish I'd Known When I Started Using Puppet](https://reader035.fdocuments.us/reader035/viewer/2022062401/58eea7a21a28ab97558b4611/html5/thumbnails/8.jpg)
![Page 9: 10 Things I Wish I'd Known When I Started Using Puppet](https://reader035.fdocuments.us/reader035/viewer/2022062401/58eea7a21a28ab97558b4611/html5/thumbnails/9.jpg)
![Page 10: 10 Things I Wish I'd Known When I Started Using Puppet](https://reader035.fdocuments.us/reader035/viewer/2022062401/58eea7a21a28ab97558b4611/html5/thumbnails/10.jpg)
CONFIDENTIAL – IF NOT, DELETE THIS LINE
4. Start with focus on timeFree yourself up to tackle bigger challenges
![Page 11: 10 Things I Wish I'd Known When I Started Using Puppet](https://reader035.fdocuments.us/reader035/viewer/2022062401/58eea7a21a28ab97558b4611/html5/thumbnails/11.jpg)
1. Quick ROI2. Free up time3. Build Trust
(Then comes Oracle, Websphere, etc.)
![Page 12: 10 Things I Wish I'd Known When I Started Using Puppet](https://reader035.fdocuments.us/reader035/viewer/2022062401/58eea7a21a28ab97558b4611/html5/thumbnails/12.jpg)
5. Start with what you knowDon’t learn puppet at the same time you’re learning new tech
![Page 13: 10 Things I Wish I'd Known When I Started Using Puppet](https://reader035.fdocuments.us/reader035/viewer/2022062401/58eea7a21a28ab97558b4611/html5/thumbnails/13.jpg)
case $equus {
‘horse’: { include puppet }
‘zebra’: { include admin }
}
![Page 14: 10 Things I Wish I'd Known When I Started Using Puppet](https://reader035.fdocuments.us/reader035/viewer/2022062401/58eea7a21a28ab97558b4611/html5/thumbnails/14.jpg)
14
6. Use Abstraction WellArchitect your codebase so it scales and is maintainable
![Page 15: 10 Things I Wish I'd Known When I Started Using Puppet](https://reader035.fdocuments.us/reader035/viewer/2022062401/58eea7a21a28ab97558b4611/html5/thumbnails/15.jpg)
Roles and Profiles
Server = $$$
Role Module
Profile Module
Component Module
Class
Resources
![Page 16: 10 Things I Wish I'd Known When I Started Using Puppet](https://reader035.fdocuments.us/reader035/viewer/2022062401/58eea7a21a28ab97558b4611/html5/thumbnails/16.jpg)
16
7. Facts Steer the Catalog(and sometimes the other way around)
![Page 17: 10 Things I Wish I'd Known When I Started Using Puppet](https://reader035.fdocuments.us/reader035/viewer/2022062401/58eea7a21a28ab97558b4611/html5/thumbnails/17.jpg)
Facts Steer the Catalog
![Page 18: 10 Things I Wish I'd Known When I Started Using Puppet](https://reader035.fdocuments.us/reader035/viewer/2022062401/58eea7a21a28ab97558b4611/html5/thumbnails/18.jpg)
Facts Steer the Catalog
Agent (Facts) Master (Catalog)
Custom facts:java_version => “1.7.0_60”
if versioncmp($java_version, ‘1.8.0’) < 0 {include java_updater
}
class java_updater {installers, execs, purges, hardening, etc.}
![Page 19: 10 Things I Wish I'd Known When I Started Using Puppet](https://reader035.fdocuments.us/reader035/viewer/2022062401/58eea7a21a28ab97558b4611/html5/thumbnails/19.jpg)
8. Put a Version on it!
![Page 20: 10 Things I Wish I'd Known When I Started Using Puppet](https://reader035.fdocuments.us/reader035/viewer/2022062401/58eea7a21a28ab97558b4611/html5/thumbnails/20.jpg)
Put a Version on it!Check everything into VCS
Work with Packages
Use r10k with Control Repo and Env.
Tarballs – jordansissel/fpmWindows – good ol’ choco?
Clear, predictable workflowAdd process/people to scale
Promotes Transparency and Trust
![Page 21: 10 Things I Wish I'd Known When I Started Using Puppet](https://reader035.fdocuments.us/reader035/viewer/2022062401/58eea7a21a28ab97558b4611/html5/thumbnails/21.jpg)
21
9. Organizational Change is Difficult
![Page 22: 10 Things I Wish I'd Known When I Started Using Puppet](https://reader035.fdocuments.us/reader035/viewer/2022062401/58eea7a21a28ab97558b4611/html5/thumbnails/22.jpg)
22
“There’s no better way to overpower a trickle of doubt than with a flood of naked truth”
- Frank Underwood
![Page 23: 10 Things I Wish I'd Known When I Started Using Puppet](https://reader035.fdocuments.us/reader035/viewer/2022062401/58eea7a21a28ab97558b4611/html5/thumbnails/23.jpg)
23
Simulate
Communicate
Enable
![Page 24: 10 Things I Wish I'd Known When I Started Using Puppet](https://reader035.fdocuments.us/reader035/viewer/2022062401/58eea7a21a28ab97558b4611/html5/thumbnails/24.jpg)
CONFIDENTIAL – IF NOT, DELETE THIS LINE
10. You’re not alone!The community and Puppet team have your back!
![Page 25: 10 Things I Wish I'd Known When I Started Using Puppet](https://reader035.fdocuments.us/reader035/viewer/2022062401/58eea7a21a28ab97558b4611/html5/thumbnails/25.jpg)
• Look left, look right, 3/3 of you are interested in Puppet
• Ask.puppet.com
• Learn.puppet.com (self-paced training)
• Forge.puppet.com
• #puppet on freenode
• https://www.youtube.com/user/PuppetLabsInc
• @puppetize
• Voxpupuli.org
• https://groups.google.com/forum/#!forum/puppet-users
• https://puppetcommunity.slack.com/
![Page 26: 10 Things I Wish I'd Known When I Started Using Puppet](https://reader035.fdocuments.us/reader035/viewer/2022062401/58eea7a21a28ab97558b4611/html5/thumbnails/26.jpg)
26
Questions?
![Page 27: 10 Things I Wish I'd Known When I Started Using Puppet](https://reader035.fdocuments.us/reader035/viewer/2022062401/58eea7a21a28ab97558b4611/html5/thumbnails/27.jpg)
![Page 28: 10 Things I Wish I'd Known When I Started Using Puppet](https://reader035.fdocuments.us/reader035/viewer/2022062401/58eea7a21a28ab97558b4611/html5/thumbnails/28.jpg)
root@localhost:/etc/sysctl.d# facter networking.interfaces.eth0{ bindings => [ { address => "10.0.2.15", netmask => "255.255.255.0", network => "10.0.2.0" } ], bindings6 => [ { … } ], dhcp => "10.0.2.2", ip => "10.0.2.15",…}
Facter: networking.interfaces.eth0.ipPP: ${::facts[networking][interfaces][eth0][ip]}ERB: <%= @facts['networking']['interfaces']['eth0']['ip'] %>