So I have a PiHole Droplet that I snapshot and restore as and when I need it. Annoyingly the PiHole requires a static IP set in /etc/dhcpcd.conf
, however, each time I restore the droplet it gets a new IP, this completely breaks the networking. I have to reset the root password and then access it through the access console, edit ``/etc/dhcpcd.conf``` to get it all working. A real bore! Is there a more elegant solution to this?
These answers are provided by our Community. If you find them useful, show some love by clicking the heart. If you run into issues leave a comment, or add your own answer to help others.
Yes! Droplets have access to a service that provides metadata about the droplet. You can create a short user-data script to supply when creating a droplet from this snapshot that would grab the new IP address from the meta data service, update /etc/dhcpd.conf and restart any services that require it.
You can learn more about using droplet meta-data here.
Your user data script can be provided in YAML or in an interpreted language that the droplet will support at boot time. This allows you to paste a bash script into the user-data field (or provide it via the API) and have it executed immediately on boot.
When testing your script you can view it’s output in /var/log/cloud-init-output.log