Server Fault is a question and answer site for system and network administrators. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

We are using puppet version 2.7.11 on a debian client with autostart enabled (START=yes in /etc/default/puppet). We connect to the puppetmaster using a certificate with the FQDN ( 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?)

share|improve this question
I wouldn't use NetworkManager at all on a server. – Michael Hampton Feb 20 '13 at 20:27
Those are mainly desktop PCs and workstations and we don’t want to interfere too much with what comes with the distribution default. Sorry, I didn’t make that any clearer. – Debilski Feb 20 '13 at 21:27

It's entirely possible to change the order in which services are started on boot. See for information about how runlevel works and how to change the order in which startup scripts are run.

If you want to have puppet restart whenever you get a new dhcp lease, you could put in a cron job that periodically checks for new dhcp leases in /var/lib/dhcp.leases and does a restart when there's a change.

share|improve this answer
I’d rather find this update functionality inside puppet itself than to change order or running scripts, though. I’m guessing there must be a reason the debian package provides rc2.d/S21puppet. – Debilski Feb 21 '13 at 13:10

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.