คลาส / โมดูล / หรืออะไรก็ตามที่เหมือนกันหลายครั้ง


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

@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 และรายชื่ออีเมลนั้นมีการใช้งานมากและครอบคลุมสิ่งต่าง ๆ เช่นนี้ในเชิงลึก หากคุณเพิ่งเริ่มต้นกับ Puppet ฉันขอแนะนำให้รักษาทั้งทรัพยากรเหล่านั้นไว้ในมือ
kashani
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.