Uma mesma classe / módulo / orwhateveritis várias vezes

9

O fantoche deve me odiar. Eu tenho lido o documento por horas a fio e ainda não consigo alcançar o seguinte:

  • uma classe ou módulo (ou como é chamado) com uma variável nela (uma classe parametrizada?);
  • essa classe deve ser incluída várias vezes em um único host.

No pseudo-código, isso seria:

# The class
classorwhatever myclass ($value) {
    notify { "$value world" }
}

# In the node definition
node whatever {
    myclass("Hello")
    myclass("Goodbye")
}

Eu me sinto tão idiota que nem é engraçado. Eu sei que deve ser factível. Mas como? : (

    
por fge 18.01.2012 / 17:21

1 resposta

13

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, } 
}
    
por 18.01.2012 / 19:59

Tags