10

Is there a way to define wildcard hosts in puppetmaster´s nodes.pp

say i want all the hosts in one domain to receive a set of classes can i do something like:

# nodes.pp
#

node basenode {
  include  admina, adminb, admic
  }


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

3 Answers 3

9

Not in this way. You can create a 'default' node that will apply to any signed client.

node "default" {
   include foo
}

But you can only have 1 default. If you want to replicate the functionality you describe you can use the external_nodes method of classification. Basically you write a script that returns valid yaml when a client connects. That script can do it anyway you want, check fqdn, query a db, hit ldap, etc.

0
16

Regular expressions are now possible in Puppet 0.25, so what you want would be possible:

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

Few distros ship 0.25 as of yet, so in my Centos5 having 2.24.8 from the EPEL repo I had to do something like this for my worker nodes with hostnames like wn10.example.com:

node  default {
    $node_type = regsubst($hostname, '^([a-z]+).*$', '\1')
    case $node_type{
        wn: {include worker_node}
        default: {include generic_node}
    }
}
1
  • Quick update - puppet-2.6.12-1.el5.noarch is now available from EPEL (supports regular expressions in node names).
    – plasmid87
    Dec 12, 2011 at 16:23

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .