con rối - xác định máy chủ ký tự đại diện trong nút.pp


10

Có cách nào để xác định máy chủ ký tự đại diện trong Puppetmaster hungsodes.pp

nói rằng tôi muốn tất cả các máy chủ lưu trữ trong một tên miền nhận được một nhóm các lớp tôi có thể làm một cái gì đó như:

# nodes.pp
#

node basenode {
  include  admina, adminb, admic
  }


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

Câu trả lời:


9

Không phải theo cách này. Bạn có thể tạo nút 'mặc định' sẽ áp dụng cho mọi máy khách đã ký.

node "default" {
   include foo
}

Nhưng bạn chỉ có thể có 1 mặc định. Nếu bạn muốn sao chép chức năng mà bạn mô tả, bạn có thể sử dụng phương pháp phân loại bên ngoài. Về cơ bản, bạn viết một kịch bản trả về yaml hợp lệ khi máy khách kết nối. Kịch bản đó có thể làm bất cứ điều gì bạn muốn, kiểm tra fqdn, truy vấn db, nhấn ldap, v.v.


+1 Đồng ý với bên ngoài
David Pashley

16

Biểu thức thông thường hiện có thể có trong Puppet 0,25, vì vậy những gì bạn muốn sẽ có thể:

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

3

Chưa có bản phân phối nào xuất hiện 0,25, vì vậy, trong Centos5 của tôi có 2,24,8 từ repo EPEL, tôi đã phải làm một cái gì đó như thế này cho các nút công nhân của mình với tên máy chủ như wn10.example.com:

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

Cập nhật nhanh - Puppet-2.6.12-1.el5.noarch hiện có sẵn từ EPEL (hỗ trợ các biểu thức thông thường trong tên nút).
plasmid87
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.