[nova] Spawning instance that will do PXE booting

Alex Schultz aschultz at redhat.com
Fri Dec 3 22:54:10 UTC 2021


On Fri, Dec 3, 2021 at 3:45 PM Thomas Goirand <zigo at debian.org> wrote:
>
> 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
>

Yea I think that's what gets built with make and then it qemu-img
converts it for you.

> 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).
>

Yea as previously mentioned you may just need to disable port security
and it should be fine.  This is basically what we (tripleo) do in our
3rd party testing where the dhcpd is from the undercloud.  I've also
used the same image locally in libvirt + sushy-emulator for testing as
well.

> 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...).
>
> Cheers,
>
> Thomas Goirand (zigo)
>




More information about the openstack-discuss mailing list