꼭두각시-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 인 배포판이 거의 없으므로 EPEL 저장소에서 2.24.8을 사용하는 Centos5에서는 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.