PXE architecture in MAAS

Hi All,
I’m trying to understand the full technical process of PXE operation when deploying.
I’m looking for non-IPMI architecture, I’m deploying desktops so the PXE configuration is in the BIOS.
Which MAAS process gets the initial request? what info does it get with the request? how MAAS makes the dynamic image for each request? and how to debug all of this process?

Thanks

MAAS uses quite standard network booting. The booting machine starts out sending a DHCP request, to which MAAS’ DHCP server will respond with an IP and its address as the “next server”. After that the booting machine will download the bootloaders from MAAS, and request and boot loader configurations. The configuration will include links where to download the kernel and initrd, as well as which kernel parameters to use.

The bootloader will then load the kernel and initrd, and the kernel parameters include a link to an ubuntu image to use as the root filesystem. The kernel parameters also tells cloud-init to get its datasource from MAAS, which will include information on what image to deploy and how to configure it.

The images we use are at http://images.maas.io/ephemeral-v3/stable/. We use the same image for all machines, and use cloud-init to configure it per machine.

1 Like

The question is a bit deeper.
I have many desktops that part of the normal operation need to switch the OS.
I configure the desktop boot to start as PXE and then HD.
When I deploy with MAAS using webhook I wrote to reboot the desktop.
Because PXE is set to first boot it loaded from MAAS.
After it finished the deploy it rebooted but because it is still configured to PXE it gets to deploy loop.
I wonder if it possible to return none from the PXE and it will continue to the next boot which is the HD that was just installed?

What kind of image are you deploying?

What should happen is that the machine is marked as Deployed in MAAS. The, when the machine PXE boots, MAAS will instruct the machine to boot from the local boot.