burattino - definisce l'host jolly in nodes.pp


10

Esiste un modo per definire gli host di caratteri jolly in puppetmaster´s nodes.pp

dico che voglio che tutti gli host in un dominio ricevano una serie di classi posso fare qualcosa del tipo:

# nodes.pp
#

node basenode {
  include  admina, adminb, admic
  }


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

Risposte:


9

Non in questo modo. È possibile creare un nodo "predefinito" che verrà applicato a qualsiasi client firmato.

node "default" {
   include foo
}

Ma puoi avere solo 1 valore predefinito. Se si desidera replicare la funzionalità descritta, è possibile utilizzare il metodo di classificazione external_nodes. Fondamentalmente scrivi uno script che restituisce yaml valido quando un client si connette. Lo script può farlo comunque, controllare fqdn, interrogare un db, premere ldap, ecc.


+1 Accordo con external_nodes
David Pashley il

16

Le espressioni regolari sono ora possibili in Puppet 0.25, quindi ciò che desideri sarebbe possibile:

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

3

Poche distro spediscono ancora 0.25, quindi nel mio Centos5 con 2.24.8 dal repository EPEL ho dovuto fare qualcosa del genere per i miei nodi di lavoro con nomi host come wn10.example.com:

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

Aggiornamento rapido - puppet-2.6.12-1.el5.noarch è ora disponibile da EPEL (supporta espressioni regolari nei nomi dei nodi).
plasmid87,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.