puppet - define o host curinga em nodes.pp


10

Existe uma maneira de definir hosts curinga nos nós do puppetmaster.pp

digamos que eu quero que todos os hosts em um domínio recebam um conjunto de classes, posso fazer algo como:

# nodes.pp
#

node basenode {
  include  admina, adminb, admic
  }


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

Respostas:


9

Não dessa maneira. Você pode criar um nó 'padrão' que será aplicado a qualquer cliente assinado.

node "default" {
   include foo
}

Mas você pode ter apenas 1 padrão. Se você deseja replicar a funcionalidade descrita, pode usar o método de classificação external_nodes. Basicamente, você escreve um script que retorna yaml válido quando um cliente se conecta. Esse script pode fazê-lo da maneira que você quiser, marque fqdn, consulte um db, pressione ldap, etc.


+1 Concordo com external_nodes
David Pashley

16

Expressões regulares agora são possíveis no Puppet 0.25; portanto, o que você deseja seria possível:

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

3

Até agora, poucas distribuições foram entregues em 0,25; portanto, no meu Centos5 com a versão 2.24.8 do repositório EPEL, tive que fazer algo parecido com isto nos meus nós de trabalho com nomes de host como wn10.example.com:

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

Atualização rápida - puppet-2.6.12-1.el5.noarch agora está disponível no EPEL (suporta expressões regulares nos nomes dos nós).
plasmid87
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.