Sometimes it's very useful to parameterize some aspect of a class. For example, you might need to manage different versions of a gem package and, rather than making separate classes for each that differ only in the version number, you can pass in the version number as a parameter.
In this example, we'll create a definition that accepts parameters:
- Declare the parameter as a part of the class definition:
class eventmachine( String $version ) { package { 'eventmachine': provider => gem, ensure => $version, } }
- Use the following syntax to include the class on a node:
class { 'eventmachine': version => '1.0.3', }
The class definition class eventmachine
($version
) { is just like a normal class definition except it specifies that the class takes one parameter: $version
. Inside the class, we've defined a package resource:
package { 'eventmachine': provider => gem, ensure => $version, }
This is a gem package...