Chapter 4. Puppet Module Design
Puppet modules are self-contained bundles of code and data. A module extends Puppet features with any number of the following optional components:
-
Manifests written in the Puppet language
-
Files and templates used by the module
-
Facts about the node
-
Parsing and manipulation functions
-
New resource types
-
New providers for existing resource types
-
Module-specific data files or providers
-
Unit and acceptance tests and test fixtures
This chapter focuses on module manifests containing Puppet language code and their resources: files, templates, metadata, and tests. We cover these additional aspects of module design in the following chapters:
-
Creation of modules for roles and profiles in Chapter 7
-
Distribution and deployment of modules in Chapter 9
-
Extending modules with plugins in Chapter 10
The Puppet Development Kit
This section examines the minimum set of tools necessary for installing, testing, and extending Puppet modules.
Installing the Puppet Agent
It might seem obvious, but Puppet novices often forget the value of installing the Puppet agent on their developer machines. Testing locally with Puppet can catch common errors that would otherwise result in a long push, run, fail, repeat-until-success cycle.
Using the Ruby that Comes Bundled with Puppet
If you’ve been working on Puppet for many years, you probably have configured a wide array of Ruby environment managers for testing your Puppet code. If you are new to all of ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access