Modules
Modules are self-contained, distributable, and (ideally) reusable recipes to manage specific applications or system's elements.
They are basically just a directory with a predefined and standard structure that enforces configuration over naming conventions for the managed provided classes, extensions, and files.
The $modulepath
configuration entry defines where modules are searched; this can be a list of colon separated directories.
Paths of a module and auto loading
Modules have a standard structure, for example, for a MySQL module the code reads thus:
mysql/ # Main module directory mysql/manifests/ # Manifests directory. Puppet code here. mysql/lib/ # Plugins directory. Ruby code here mysql/templates/ # ERB Templates directory mysql/files/ ...
Get Puppet: Mastering Infrastructure Automation now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.