Book Image

Mastering Puppet

By : Thomas Uphill
Book Image

Mastering Puppet

By: Thomas Uphill

Overview of this book

Table of Contents (17 chapters)

Defined types


A situation where you have a block of code that is repeated within a single node can be managed with defined types. You create a defined type with a call to define. define is a block of Puppet code that receives a set of parameters when instantiated. Our previous database example could be rewritten as a defined type to allow more than one type of database server to be installed on a single node.

Another example of where a defined type is useful is building filesystems with the LVM module. When we used the LVM module to build a filesystem, there were three steps required: we needed a filesystem (a logical volume or LVM resource), a location to mount the filesystem (a file resource), and a mount command (a mount resource). Every time we liked to mount a filesystem, we'll need these three things. To make our code cleaner, we'll create a defined type for filesystem. Since we don't believe this will be used outside our example organization, we'll call it example::fs.

Defined types...