We are using puppet version 2.7.11 on a debian client with autostart enabled (
/etc/default/puppet). We connect to the puppetmaster using a certificate with the FQDN (
dummyclient.work-network.pri) and it works fine. The altered
/etc/default/puppet file is shipped to our client, for example.
The problem is: After a restart we see a new certificate request by
dummyclient which our puppetmaster considers as a completely different machine. One reason for this seems to be that we are using DHCP for our client names and ip addresses and the network may not yet be fully there when
puppet-agent is started. (In our syslog
puppet-agent is started before
NetworkManager gives information about the nameserver and domain name.) As a further proof
hostname -f is also empty during boot (whereas
hostname -s gives the correct answer).
Apparently, the running puppet process does not ever update this information no matter how long the system runs. (Manually started puppet runs use the FQDN.)
Is it possible to delay the time puppet is being started or alternatively trigger a puppet restart whenever the network information changes. (E.g. when the client has been started without a network connection at all.)
Or would the optimal solution simply be to hardcode the FQDN in the client’s
/etc/hosts file? (But then again, this should be the job of our DHCP server, no?)