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 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 ...