Một lớp / mô-đun / viêm bất cứ điều gì nhiều lần


9

Con rối phải ghét tôi. Tôi đã đọc tài liệu hàng giờ liền và vẫn không thể xoay sở để đạt được những điều sau:

  • một lớp hoặc mô-đun (hoặc nó được gọi là gì) với một biến trong đó (một lớp được tham số hóa?);
  • lớp này được bao gồm nhiều lần trong một máy chủ.

Trong mã giả, đó sẽ là:

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

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

Tôi cảm thấy thật ngu ngốc, nó thậm chí không hài hước. Tôi biết nó phải được thực hiện. Nhưng bằng cách nào? :


Bạn đang đọc cái này à? docs.puppetlabs.com/learning/modules2.html . Những con rối nào trên máy chủ / máy khách của bạn?
Zoredache

@Zoredache 2.6.12 trên cả máy chủ và máy khách
FGE

Câu trả lời:


13

Bạn chỉ có thể sử dụng một lớp tham số hóa một lần. Nếu bạn có kế hoạch nhấn một nút nhiều lần với một chức năng trong khi thay đổi các định nghĩa dữ liệu là cách để đi.

thí dụ

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

Thông minh. fwiw #puppet trên freenode và danh sách thư rất tích cực và đã đề cập đến những điều như thế này một cách sâu sắc. Nếu bạn mới bắt đầu với Puppet, tôi khuyên bạn nên giữ cả hai tài nguyên đó.
kashani
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.