Una misma clase / módulo / o cualquier cosa múltiples veces


9

La marioneta debe odiarme. He estado leyendo el documento durante horas y horas y todavía no puedo lograr lo siguiente:

  • una clase o módulo (o cómo se llama) con una variable (¿una clase parametrizada?);
  • esta clase se incluirá varias veces en un solo host.

En pseudocódigo, eso sería:

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

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

Me siento tan estúpido que ni siquiera es gracioso. Sé que debe ser factible. ¿Pero cómo? :(


¿Estás leyendo esto? docs.puppetlabs.com/learning/modules2.html . ¿Qué versión de marioneta hay en su servidor / cliente?
Zoredache

@Zoredache 2.6.12 tanto en el servidor como en los clientes
fge

Respuestas:


13

Solo puede usar una clase parametrizada una vez. Si planea golpear un nodo varias veces con una función mientras varía, las definiciones de datos son el camino a seguir.

ejemplo

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 en freenode y las listas de correo son muy activas y han cubierto cosas como esta en profundidad. Si recién estás comenzando con Puppet, te sugiero que tengas ambos recursos a mano.
Kashani
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.