When and how does digitalocean set a droplet's hostname?

December 8, 2015 1.3k views
DigitalOcean Monitoring

One of the clever things that digitalocean does is to set the hostname of a new droplet to a sensible value. When, and how, does this happen?

I have a third-party daemon (newrelic-sysmond) that needs to know the hostname. When it starts, the hostname still is packer-... and not the hostname set by the digitalocean droplet initiating process. In the /etc/rc structure, the hostname is set in rcS.d/S01hostname.sh, which should occur before rc2.d/S01newrelic-sysmond. However, it seems the hostname still has the name at image-creation time by the time rc2.d/S01newrelic-sysmond is run.


1 Answer

The hostname is set based on the name given the droplet. This is done (to the best of my knowledge) via cloud-init on the first boot. You should be able to review this process by looking at /var/log/cloud-init.log and /var/log/cloud-init-output.log

  • Thanks, I see, a lot of debugging info but it is clear the hostname is set at an earlier stage.

    On Debian cloud-init-local is run at order 01 from rc2.d, just like newrelic-sysmond---but still, cloud-init-local should be earlier because of lexicographic ordering. Or can init scripts be run in parallel?

Have another answer? Share your knowledge.