I'm running puppet 2.7.9 on a Debian Squeeze system. The box I'm targeting is named 'puppet'
# hostname
puppet
# facter | grep hostname
hostname => puppet
# cat /etc/hosts | head -n2
127.0.0.1 localhost
127.0.1.1 puppet.example.com puppet
My node definition looks like so:
node puppet {
include base, puppet
}
Despite the node documentation asserting that
Node names can be the short host name, or the fully qualified domain name (FQDN).
the above node definition only fires if I substitute the short host name for the FQDN or use a regular expression match, like: "/^puppet..*/". Using the short host name definition:
# puppet agent -vt
info: Caching catalog for puppet.example.com
info: Applying configuration version '1327898040'
notice: Finished catalog run in 0.64 seconds
This run should have had more output. What's going on here; what am I missing?
I understood that the dns hostname "puppet" in the puppet world was reserved for the puppetmaster machine, if you want to target the master machine via it's own puppet server, give it a different hostname and use a dns cname as an alias. That should work, at least, it's what i do.
Since puppet 7 (way after the question was posted), this changed...
see this "bug" link
Now there is no
strict_hostname_checking
variable to configure this, and it works like it's true now, so you can only match fqdn by the raw node name, eg.is going to say "using default node", and not going to include somemodule for your host somemachineX.yourdomain.com ...but either of these would work:
But of course that regex isn't very good and will also match things like:
And see docs about it and see it's not up to date... (the following quote is no longer true)