Uma mesma classe / módulo / ou qualquer que seja a doença várias vezes


9

Fantoche deve me odiar. Eu tenho lido o documento por horas a fio e ainda não consigo obter o seguinte:

  • uma classe ou módulo (ou como é chamado) com uma variável (uma classe parametrizada?);
  • essa classe seja 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 estúpido que nem é engraçado. Eu sei que deve ser factível. Mas como? :(


Você está lendo isso? docs.puppetlabs.com/learning/modules2.html . Qual versão do fantoche está no seu servidor / cliente?
Zoredache

@Zoredache 2.6.12 no servidor e nos clientes
fge

Respostas:


13

Você só pode usar uma classe parametrizada uma vez. Se você planeja acessar 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, } 
}

Excelente. fwiw #puppet on freenode e as listas de mensagens são muito ativas e cobriram coisas como essa em profundidade. Se você está apenas começando com o Puppet, sugiro manter esses dois recursos à mão.
Kashani
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.