Ta sama klasa / moduł / lub cokolwiek to zapalenie wiele razy


9

Marionetka musi mnie nienawidzić. Czytam ten dokument godzinami i wciąż nie mogę osiągnąć następujących celów:

  • klasa lub moduł (lub jak się nazywa) ze zmienną (sparametryzowana klasa?);
  • tę klasę należy uwzględnić wielokrotnie na jednym hoście.

W pseudokodzie byłoby to:

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

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

Czuję się tak głupio, że to nawet nie jest śmieszne. Wiem, że to musi być wykonalne. Ale jak? :(


Czytasz to? docs.puppetlabs.com/learning/modules2.html . Jaka wersja kukiełki znajduje się na twoim serwerze / kliencie?
Zoredache,

@Zoredache 2.6.12 zarówno na serwerze, jak i na klientach
fge

Odpowiedzi:


13

Sparametryzowanej klasy można użyć tylko raz. Jeśli planujesz uderzyć w węzeł kilka razy funkcją, zmieniając definicje danych, dobrym rozwiązaniem jest.

przykład

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

Świetny. fwiw #puppet na freenode i listy mailowe są bardzo aktywne i szczegółowo opisały takie rzeczy. Jeśli dopiero zaczynasz przygodę ze Puppet, radzę mieć oba te zasoby pod ręką.
kashani
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.