Kelas / modul / atau apa pun yang sama beberapa kali sama

9

Wayang pasti membenciku. Saya telah membaca dokumen selama berjam-jam dan masih belum bisa mencapai yang berikut:

  • kelas atau modul (atau apa namanya) dengan variabel di dalamnya (kelas parameterized?);
  • kelas ini akan dimasukkan beberapa kali dalam satu host.

Dalam pseudo-code, itu akan menjadi:

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

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

Saya merasa sangat bodoh bahkan tidak lucu. Saya tahu itu harus bisa dilakukan. Tapi bagaimana caranya? :(

Fge
sumber
Anda membaca ini? docs.puppetlabs.com/learning/modules2.html . Vrsion boneka apa yang ada di server / klien Anda?
Zoredache
@Zoredache 2.6.12 di server dan klien
fge

Jawaban:

13

Anda hanya dapat menggunakan kelas parameterisasi satu kali. Jika Anda berencana untuk mencapai suatu simpul beberapa kali dengan suatu fungsi sambil memvariasikan definisi data adalah cara yang harus dilakukan.

contoh

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, } 
}
Kashani
sumber
Luar biasa. fwiw #puppet di freenode dan daftar mail sangat aktif dan telah membahas hal-hal seperti ini secara mendalam. Jika Anda baru memulai dengan Wayang, saya sarankan untuk tetap menggunakan kedua sumber daya itu.
kashani