puppet - define o host curinga em nodes.pp

10

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

digamos 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
    }
    
por lepole 04.06.2009 / 17:45

3 respostas

9

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

node "default" {
   include foo
}

Mas você só pode ter um padrão. Se você quiser replicar a funcionalidade descrita, pode usar o método external_nodes de classificação. Basicamente, você escreve um script que retorna yaml válido quando um cliente se conecta. Esse script pode fazer isso do jeito que você quiser, verificar fqdn, consultar um banco de dados, clicar em ldap, etc.

    
por 04.06.2009 / 20:15
16

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

node /^(foo|bar)\.example\.com$/ {
include blah
}
    
por 09.09.2009 / 16:03
3

Poucas distribuições já chegaram a 0.25, então no meu Centos5 tendo 2.24.8 do repo EPEL eu tive que fazer algo assim para meus nós de trabalho com nomes de host como wn10.example.com:

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

Tags