[nova] Spawning instance that will do PXE booting

Thomas Goirand zigo at debian.org
Fri Dec 3 22:43:33 UTC 2021

On 12/3/21 11:34 PM, Alex Schultz wrote:
> On Fri, Dec 3, 2021 at 3:22 PM Thomas Goirand <zigo at debian.org> wrote:
>> On 12/3/21 10:41 PM, Julia Kreger wrote:
>>> Extreme magic - OpenStack Edition. At least that feels like the answer.
>>> In essence, we create VMs. We attach them to the network, then
>>> configure virtualbmc or sushy-tools to play the role of a BMC and one
>>> of the things that library understand is the giant switch of "boot to
>>> network". From there we ipxe boot. The VMs play the role of baremetal
>>> machines through the emulation of the BMC and they are just hooked up
>>> to the network.
>>> This does require the job to use root privileges to setup
>>> networking/vms. And the virtualbmc or sushy-tools service needs enough
>>> rights to toggle the VM's config. Would be happy to try and discuss
>>> specifics of the devstack plugin, but I'm unsure if that would really
>>> help. Regardless, you know where to find us. :)
>>> As an aside, when I first read the post I was thinking of booting from
>>> ISO images. I've known people to embed ipxe into disk images, and you
>>> can embed static config/instructions for booting into an ipxe binary.
>>> It does require custom binary builds, but it might make what you're
>>> trying to achieve easier.
>> Hi Julia!
>> Thanks for your answer.
>> Well, I've read multiple times your reply, but I have to admit I still
>> don't get all the details. For example, how would you "embed ipxe into
>> disk images" for example? Should I for example run the iPXE binary from
>> something like syslinux (or grub?)? But isn't iPXE usually running
>> *after* the BIOS of a PC gets an IP from DHCP?
> I'm sure there are other examples around but the one we used to (maybe
> still do) use for ovb can be built via:
> https://opendev.org/openstack/openstack-virtual-baremetal/src/branch/master/ipxe
> You basically build an image that just attempts ipxe on repeat.

Hi Alex!

In fact, I just found out my solution: http://boot.ipxe.org/ipxe.iso

Just download this, then:

openstack image create \
	--disk-format iso \
	--container-format bare \
	--file ipxe.iso ipxe.iso

Et voila! The VM boots from PXE (I checked on the VNC console, and it
also gets DHCP). I didn't go further, but it should be easy to setup the
rest of the components (ie: a private network without DHCP, and a VM
acting as DHCPd + tftp-hpa).

I'll let you guys know how much progress I'm making with all of this
(probably I'll start working on this next week...).


Thomas Goirand (zigo)

More information about the openstack-discuss mailing list