多次使用同一个类/模块/或任何东西

fge*_*fge 9 puppet

傀儡一定恨我。我已经连续阅读了几个小时的文档,但仍然无法实现以下目标:

  • 一个类或模块(或它叫什么),其中包含一个变量(参数化类?);
  • 此类将在单个主机中多次包含。

在伪代码中,这将是:

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

# In the node definition
node whatever {
    myclass("Hello")
    myclass("Goodbye")
}
Run Code Online (Sandbox Code Playgroud)

我觉得自己太蠢了,一点都不好笑。我知道这一定是可行的。但是如何?:(

kas*_*ani 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, } 
}
Run Code Online (Sandbox Code Playgroud)