I have a fairly simple puppet setup, one master and one node, both running Debian Squeeze 6.0.4. I have DNS entries for the two machines, client and master respectively. Both client and master's DNS entries resolve correctly on both machines to the right IPs.
On my client, I have this configuration:
[main]
server = master.example.org
logdir=/var/log/puppet
vardir=/var/lib/puppet
ssldir=/var/lib/puppet/ssl
rundir=/var/run/puppet
factpath=$vardir/lib/facter
pluginsync=true
templatedir=/var/lib/puppet/templates
Key exchange seems to fail, according to this messages in /var/log/syslog:
localhost puppet-agent[11364]: Could not request certificate: getaddrinfo: Name or service not known
Why is resolution not working only for puppet?
You'll need a forward and reverse DNS entry for the client. You could also add an
/etc/hosts
entry for the client on the puppetmaster.