Network booting
Network booting turns installing an operating system into a thing that happens without anybody being present. It is also a foot-gun pointed at every machine on the segment.
Do you need it
For a handful of machines, no. Our portal reinstalls a server with the operating system you choose, unattended, from the panel or the API — see reinstalling. That covers most people entirely.
PXE earns its keep when you are provisioning dozens of machines, when you need a custom image, or when you are a reseller building a fleet to your own standard.
How it fits together
- The machine's firmware asks for an address and a boot file over DHCP
- It downloads a bootloader over TFTP or, with iPXE, over HTTP
- That loads a kernel and initrd
- The installer reads an answer file — preseed, kickstart or autoinstall — and installs without questions
iPXE is worth the extra step: it fetches over HTTP instead of TFTP, which is faster and far easier to debug, and it can script decisions based on the machine's MAC address.
The part that matters on a shared network
A rogue DHCP server affects everyone on the segment. If your PXE setup answers DHCP requests from machines that are not yours, you have broken other customers, and that is squarely against the acceptable use policy.
So this has to be arranged with us, on a private VLAN, with the DHCP scope bound to that interface and to your own MAC addresses. Open a ticket before you build it — see VLANs and tagged interfaces and connecting your own servers.
An unattended install, briefly
Debian and Ubuntu use preseed or autoinstall; RHEL-based systems use kickstart. The answer file sets the disk layout, the packages, and a single SSH key for the first login. Then hand the rest to configuration management — the installer should do as little as possible beyond producing a machine you can reach.
Two things to get right: use UUIDs or disk serials rather than
/dev/sda in the partitioning recipe, and do not bake secrets into the
image. See managing secrets.
Boot order
Set network boot after the local disk, not before. A machine that prefers PXE will happily reinstall itself the next time it reboots and your provisioning server is still answering. People have lost production machines this way.
Better still, have the PXE server serve “boot from local disk” by default and only offer an installer to machines you have explicitly listed. See UEFI and boot order.
The simpler alternative
For most fleets, our API plus cloud-init gets you to the same place with far less machinery: order or reinstall through the API, let cloud-init do the first-boot configuration, let Ansible do the rest. No DHCP, no TFTP, nothing of yours that can answer for somebody else's machine.
Still stuck? Mail support@novogara.com — an engineer answers, at any hour. Back to the knowledge base