Você só pode usar uma classe com parâmetros uma vez. Se você planeja acertar um nó várias vezes com uma função enquanto varia as definições de dados é o caminho a percorrer.
exemplo
class apache ( $module ) {
if module = ssl then and so on
}
define apache::vhost ($priority=99) {
file { "apache/vhost.d/${name}":
content => template("apache/vhosts/$name.erb"),
}
}
node webserver {
class { 'apache': module => 'ssl', }
apache::vhost { 'www': priority => 00, }
apache::vhost { 'test': priority => 99, }
}