Один і той же клас / модуль / або будь-який шум кілька разів


9

Лялечка повинна ненавидіти мене. Я читав документ протягом кількох годин і досі не можу досягти наступного:

  • клас або модуль (або як його називають) зі змінною в ньому (параметризований клас?);
  • цей клас повинен бути включений кілька разів в один хост.

У псевдокоді це було б:

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

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

Я відчуваю себе таким дурним, що це навіть не смішно. Я знаю, що це повинно бути виконано. Але як? :(


Ви це читаєте? docs.puppetlabs.com/learning/modules2.html . Яка версія лялечки на вашому сервері / клієнті?
Зоредаче

@Zoredache 2.6.12 і на сервері, і на клієнтах
fge

Відповіді:


13

Ви можете використовувати параметризований клас лише один раз. Якщо ви плануєте кілька разів ударити по вузлу за допомогою функції, змінюючи визначення даних, це шлях.

приклад

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

Відмінно. fwiw #puppet у freenode та списки пошти дуже активні і глибоко висвітлювали такі речі. Якщо ви тільки починаєте роботу з лялькою, я б запропонував тримати в руках обидва ці ресурси.
кашани
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.