![Page 2: 20120324 Advanced Topics in Puppet at Cascadia IT Conference](https://reader033.vdocuments.net/reader033/viewer/2022060111/55627ae5d8b42a04418b4d19/html5/thumbnails/2.jpg)
# whoami
![Page 3: 20120324 Advanced Topics in Puppet at Cascadia IT Conference](https://reader033.vdocuments.net/reader033/viewer/2022060111/55627ae5d8b42a04418b4d19/html5/thumbnails/3.jpg)
Puppet Labs is Hiring
• Release Engineer
• Software Developer
• Certification Program Manager
• Professional Services Engineer
http://puppetlabs.com/company/careers/
![Page 4: 20120324 Advanced Topics in Puppet at Cascadia IT Conference](https://reader033.vdocuments.net/reader033/viewer/2022060111/55627ae5d8b42a04418b4d19/html5/thumbnails/4.jpg)
We’re going to jump around
• style
• provisioning
• software repo’s
• Hiera
• MCollective
• Version Control / Dev workflow / Testing
![Page 5: 20120324 Advanced Topics in Puppet at Cascadia IT Conference](https://reader033.vdocuments.net/reader033/viewer/2022060111/55627ae5d8b42a04418b4d19/html5/thumbnails/5.jpg)
Coding style
http://docs.puppetlabs.com/guides/style_guide.html
![Page 6: 20120324 Advanced Topics in Puppet at Cascadia IT Conference](https://reader033.vdocuments.net/reader033/viewer/2022060111/55627ae5d8b42a04418b4d19/html5/thumbnails/6.jpg)
four digit mode
![Page 7: 20120324 Advanced Topics in Puppet at Cascadia IT Conference](https://reader033.vdocuments.net/reader033/viewer/2022060111/55627ae5d8b42a04418b4d19/html5/thumbnails/7.jpg)
default fail()
![Page 8: 20120324 Advanced Topics in Puppet at Cascadia IT Conference](https://reader033.vdocuments.net/reader033/viewer/2022060111/55627ae5d8b42a04418b4d19/html5/thumbnails/8.jpg)
Inheritance
![Page 9: 20120324 Advanced Topics in Puppet at Cascadia IT Conference](https://reader033.vdocuments.net/reader033/viewer/2022060111/55627ae5d8b42a04418b4d19/html5/thumbnails/9.jpg)
Inheritance
![Page 10: 20120324 Advanced Topics in Puppet at Cascadia IT Conference](https://reader033.vdocuments.net/reader033/viewer/2022060111/55627ae5d8b42a04418b4d19/html5/thumbnails/10.jpg)
Inheritance
![Page 11: 20120324 Advanced Topics in Puppet at Cascadia IT Conference](https://reader033.vdocuments.net/reader033/viewer/2022060111/55627ae5d8b42a04418b4d19/html5/thumbnails/11.jpg)
Inheritance
![Page 12: 20120324 Advanced Topics in Puppet at Cascadia IT Conference](https://reader033.vdocuments.net/reader033/viewer/2022060111/55627ae5d8b42a04418b4d19/html5/thumbnails/12.jpg)
Best Practices
![Page 13: 20120324 Advanced Topics in Puppet at Cascadia IT Conference](https://reader033.vdocuments.net/reader033/viewer/2022060111/55627ae5d8b42a04418b4d19/html5/thumbnails/13.jpg)
Start from a known base
![Page 14: 20120324 Advanced Topics in Puppet at Cascadia IT Conference](https://reader033.vdocuments.net/reader033/viewer/2022060111/55627ae5d8b42a04418b4d19/html5/thumbnails/14.jpg)
Provision small
![Page 15: 20120324 Advanced Topics in Puppet at Cascadia IT Conference](https://reader033.vdocuments.net/reader033/viewer/2022060111/55627ae5d8b42a04418b4d19/html5/thumbnails/15.jpg)
Provisioning process
![Page 16: 20120324 Advanced Topics in Puppet at Cascadia IT Conference](https://reader033.vdocuments.net/reader033/viewer/2022060111/55627ae5d8b42a04418b4d19/html5/thumbnails/16.jpg)
Software Repo’s
• No ensure => latest in your code.
• Specific version strings are even worse
![Page 17: 20120324 Advanced Topics in Puppet at Cascadia IT Conference](https://reader033.vdocuments.net/reader033/viewer/2022060111/55627ae5d8b42a04418b4d19/html5/thumbnails/17.jpg)
Run your own Software Repo’s
![Page 18: 20120324 Advanced Topics in Puppet at Cascadia IT Conference](https://reader033.vdocuments.net/reader033/viewer/2022060111/55627ae5d8b42a04418b4d19/html5/thumbnails/18.jpg)
Version control your Repo’s
/data/repos/CentOS_6.1_Basesymlinks to
/data/repos/CentOS_6.1_Base-2012032400
![Page 19: 20120324 Advanced Topics in Puppet at Cascadia IT Conference](https://reader033.vdocuments.net/reader033/viewer/2022060111/55627ae5d8b42a04418b4d19/html5/thumbnails/19.jpg)
Hiera
![Page 20: 20120324 Advanced Topics in Puppet at Cascadia IT Conference](https://reader033.vdocuments.net/reader033/viewer/2022060111/55627ae5d8b42a04418b4d19/html5/thumbnails/20.jpg)
Decoupling data and modules
• show me the code
![Page 21: 20120324 Advanced Topics in Puppet at Cascadia IT Conference](https://reader033.vdocuments.net/reader033/viewer/2022060111/55627ae5d8b42a04418b4d19/html5/thumbnails/21.jpg)
MCollective
![Page 22: 20120324 Advanced Topics in Puppet at Cascadia IT Conference](https://reader033.vdocuments.net/reader033/viewer/2022060111/55627ae5d8b42a04418b4d19/html5/thumbnails/22.jpg)
VCS Structure (SVN view)
![Page 23: 20120324 Advanced Topics in Puppet at Cascadia IT Conference](https://reader033.vdocuments.net/reader033/viewer/2022060111/55627ae5d8b42a04418b4d19/html5/thumbnails/23.jpg)
Flow