puppet - กำหนดโฮสต์สัญลักษณ์แทนใน nodes.pp


10

มีวิธีกำหนดโฮสต์ตัวแทนใน puppetmaster's nodes.pp หรือไม่

บอกว่าฉันต้องการโฮสต์ทั้งหมดในโดเมนเดียวเพื่อรับชุดคลาสฉันสามารถทำสิ่งที่ชอบ:

# nodes.pp
#

node basenode {
  include  admina, adminb, admic
  }


node "*.acme.com" {
    include adminc
    }

คำตอบ:


9

ไม่ได้ด้วยวิธีนี้ คุณสามารถสร้างโหนด 'เริ่มต้น' ที่จะใช้กับไคลเอ็นต์ที่ลงชื่อใด ๆ

node "default" {
   include foo
}

แต่คุณสามารถมีค่าเริ่มต้นได้เพียง 1 รายการเท่านั้น หากคุณต้องการทำซ้ำฟังก์ชั่นที่คุณอธิบายคุณสามารถใช้วิธี external_nodes ในการจำแนกประเภท โดยทั่วไปคุณเขียนสคริปต์ที่ส่งคืน yaml ที่ถูกต้องเมื่อไคลเอนต์เชื่อมต่อ สคริปต์นั้นสามารถทำได้ทุกอย่างที่คุณต้องการตรวจสอบ fqdn สอบถาม db, กด ldap เป็นต้น


+1 เห็นด้วยกับ external_nodes
David Pashley

16

ตอนนี้คุณสามารถใช้นิพจน์ทั่วไปได้ใน Puppet 0.25 ดังนั้นสิ่งที่คุณต้องการจะเป็นไปได้:

node /^(foo|bar)\.example\.com$/ {
include blah
}

3

ดิสทริบิวชันไม่กี่ลำที่จัดส่ง 0.25 ณ ตอนนี้ดังนั้นใน Centos5 ของฉันที่มี 2.24.8 จาก repo ของ EPEL ฉันต้องทำสิ่งนี้สำหรับโหนดงานของฉันด้วยชื่อโฮสต์เช่น wn10.example.com:

node  default {
    $node_type = regsubst($hostname, '^([a-z]+).*$', '\1')
    case $node_type{
        wn: {include worker_node}
        default: {include generic_node}
    }
}

การอัพเดตด่วน - puppet-2.6.12-1.el5.noarch พร้อมใช้งานจาก EPEL (รองรับนิพจน์ปกติในชื่อโหนด)
plasmid87
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.