a practical guide to modules - puppetconf 2014
DESCRIPTION
A Practical Guide to Modules - Lauren Rother, Puppet Labs & Morgan Haskel, Puppet LabsTRANSCRIPT
![Page 1: A Practical Guide to Modules - PuppetConf 2014](https://reader034.vdocuments.us/reader034/viewer/2022051609/547c35d7b4af9faf158b5056/html5/thumbnails/1.jpg)
2014
Presented by
A Practical Guide to Magic ModulesMorgan Haskel Module Engineer | Puppet Labs @KnittyNerd
Lauren Rother Technical Writer | Puppet Labs @GrandmaHenri
![Page 2: A Practical Guide to Modules - PuppetConf 2014](https://reader034.vdocuments.us/reader034/viewer/2022051609/547c35d7b4af9faf158b5056/html5/thumbnails/2.jpg)
Presented by
Clarifications
Intermediate level talk
Internal setup vs community modules
![Page 3: A Practical Guide to Modules - PuppetConf 2014](https://reader034.vdocuments.us/reader034/viewer/2022051609/547c35d7b4af9faf158b5056/html5/thumbnails/3.jpg)
Presented by
Getting Your Wands in OrderWhat task do you need your module to accomplish?
How will your module accomplish this task?
How does this fit in with the broader Puppet ecosystem?
![Page 4: A Practical Guide to Modules - PuppetConf 2014](https://reader034.vdocuments.us/reader034/viewer/2022051609/547c35d7b4af9faf158b5056/html5/thumbnails/4.jpg)
Presented by
Planning for TomcatResearch
RTFM
Experiment
Automate
![Page 5: A Practical Guide to Modules - PuppetConf 2014](https://reader034.vdocuments.us/reader034/viewer/2022051609/547c35d7b4af9faf158b5056/html5/thumbnails/5.jpg)
Presented by
One No Module to Rule Them All
Each module needs to manage only one thing.
Everything else belongs in profiles!
![Page 6: A Practical Guide to Modules - PuppetConf 2014](https://reader034.vdocuments.us/reader034/viewer/2022051609/547c35d7b4af9faf158b5056/html5/thumbnails/6.jpg)
Presented by
Transfiguring Your Module
Classes
Defined Types
Parameters
![Page 7: A Practical Guide to Modules - PuppetConf 2014](https://reader034.vdocuments.us/reader034/viewer/2022051609/547c35d7b4af9faf158b5056/html5/thumbnails/7.jpg)
Presented by
Classes and Defined Types
![Page 8: A Practical Guide to Modules - PuppetConf 2014](https://reader034.vdocuments.us/reader034/viewer/2022051609/547c35d7b4af9faf158b5056/html5/thumbnails/8.jpg)
Presented by
Parameterize All The Things!
![Page 9: A Practical Guide to Modules - PuppetConf 2014](https://reader034.vdocuments.us/reader034/viewer/2022051609/547c35d7b4af9faf158b5056/html5/thumbnails/9.jpg)
Presented by
Moar Advanced Topics
![Page 10: A Practical Guide to Modules - PuppetConf 2014](https://reader034.vdocuments.us/reader034/viewer/2022051609/547c35d7b4af9faf158b5056/html5/thumbnails/10.jpg)
Presented by
Will Someone End Up a Lizard?Add tests to ensure module functionality.
Unit tests for most things.
Acceptance tests for high-level functionality.
![Page 11: A Practical Guide to Modules - PuppetConf 2014](https://reader034.vdocuments.us/reader034/viewer/2022051609/547c35d7b4af9faf158b5056/html5/thumbnails/11.jpg)
Presented by
McGonagall’s Guide to Style
Being a good community member means following your guides.
![Page 12: A Practical Guide to Modules - PuppetConf 2014](https://reader034.vdocuments.us/reader034/viewer/2022051609/547c35d7b4af9faf158b5056/html5/thumbnails/12.jpg)
Presented by
Use the README Template!
https://docs.puppetlabs.com/puppet/latest/reference/modules_documentation.html
![Page 13: A Practical Guide to Modules - PuppetConf 2014](https://reader034.vdocuments.us/reader034/viewer/2022051609/547c35d7b4af9faf158b5056/html5/thumbnails/13.jpg)
Presented by
You Shall Not Pass (Lint)Whitespace, alignment, and formatting, oh my!
Inheritance
Namespacing
Avoid selectors
![Page 14: A Practical Guide to Modules - PuppetConf 2014](https://reader034.vdocuments.us/reader034/viewer/2022051609/547c35d7b4af9faf158b5056/html5/thumbnails/14.jpg)
Presented by
SemVer!X.Y.Z
Increment X for backwards incompatible changes
Increment Y for new features
Increment Z for bug fixes
![Page 15: A Practical Guide to Modules - PuppetConf 2014](https://reader034.vdocuments.us/reader034/viewer/2022051609/547c35d7b4af9faf158b5056/html5/thumbnails/15.jpg)
Presented by
Pull Requests
Follow the style guide!
Update tests!
Update documentation!
![Page 16: A Practical Guide to Modules - PuppetConf 2014](https://reader034.vdocuments.us/reader034/viewer/2022051609/547c35d7b4af9faf158b5056/html5/thumbnails/16.jpg)
Presented by
Module TriageThursdays from 1700-1800 UTC
Link will be posted in #puppet-dev
Agenda driven by community requests
Ping: _morgan, Hunner, crinkle, or cyberious on #puppet-dev
![Page 17: A Practical Guide to Modules - PuppetConf 2014](https://reader034.vdocuments.us/reader034/viewer/2022051609/547c35d7b4af9faf158b5056/html5/thumbnails/17.jpg)
Presented by
Questions?