puppet - définit l'hôte générique dans nodes.pp

10

Existe-t-il un moyen de définir des hôtes génériques dans les nœuds de puppetmaster´s

dis que je veux que tous les hôtes d'un domaine reçoivent un ensemble de classes puis-je faire quelque chose comme:

# nodes.pp
#

node basenode {
  include  admina, adminb, admic
  }


node "*.acme.com" {
    include adminc
    }
lepole
la source

Réponses:

9

Pas de cette façon. Vous pouvez créer un nœud «par défaut» qui s'appliquera à tout client signé.

node "default" {
   include foo
}

Mais vous ne pouvez avoir qu'une seule valeur par défaut. Si vous souhaitez répliquer la fonctionnalité que vous décrivez, vous pouvez utiliser la méthode de classification external_nodes. Fondamentalement, vous écrivez un script qui renvoie un yaml valide lorsqu'un client se connecte. Ce script peut le faire comme vous le souhaitez, vérifiez fqdn, interrogez une base de données, appuyez sur ldap, etc.

Bâton
la source
+1 D'accord avec external_nodes
David Pashley
16

Les expressions régulières sont maintenant possibles dans Puppet 0.25, donc ce que vous voulez serait possible:

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

Peu de distributions expédient 0,25 pour le moment, donc dans mon Centos5 avec 2.24.8 du repo EPEL, j'ai dû faire quelque chose comme ça pour mes nœuds de travail avec des noms d'hôte comme wn10.example.com:

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

la source
Mise à jour rapide - puppet-2.6.12-1.el5.noarch est désormais disponible sur EPEL (prend en charge les expressions régulières dans les noms de noeud).
plasmid87