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
    }
lepole
fonte

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.

Bastão
fonte
+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
}
Pheezy
fonte
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}
    }
}

fonte
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