Una stessa classe / modulo / o qualsiasi altra cosa più volte


9

Il burattino deve odiarmi. Ho letto il documento per ore e ore e non riesco ancora a ottenere quanto segue:

  • una classe o un modulo (o come si chiama) con una variabile (una classe con parametri?);
  • questa classe deve essere inclusa più volte in un singolo host.

In pseudo-codice, sarebbe:

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

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

Mi sento così stupido che non è nemmeno divertente. So che deve essere fattibile. Ma come? :(


Stai leggendo questo? docs.puppetlabs.com/learning/modules2.html . Quale versione di Puppet è sul tuo server / client?
Zoredache,

@Zoredache 2.6.12 sia sul server che sui client
fge

Risposte:


13

È possibile utilizzare una classe con parametri solo una volta. Se hai intenzione di colpire un nodo più volte con una funzione mentre variando le definizioni dei dati, sei la strada da percorrere.

esempio

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, } 
}

Eccellente. fwiw #puppet su freenode e le liste di posta sono molto attive e hanno approfondito cose come questa. Se hai appena iniziato con Puppet, ti suggerisco di tenere a portata di mano entrambe queste risorse.
Kashani,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.