The environment I'm working in has dozens of different servers, and several times per year new ones get added. We use PXE booting (Legacy/BIOS and EFI) for provisioning these new machines. I'm in the process of changing our network install process from the previous debian-installer mechanism to the new autoinstall / cloud-init mechanism.
A limitation that I've noticed is that the syslinux (BIOS) or grub.cfg entry (EFI) points to a specific user-data
url, e.g. http://example.org/ks/user-data
. But what if you have many different machines that you'd like provisioned? The user-data
file mandates things like a hostname
be set in the identity
block, making these files only really suited to provision a single specific machine.
So, my first inclination was to generate a separate user-data
file for each host, to serve up. But, since that URL is hard-coded in your syslinux/grub config, how is this possible?
tl;dr Is there some mechanism in the new autoinstall/cloud-init system that facilitates providing different configurations depending on the host that is being PXE booted?