Installing hosts using PXE is a well known thing.
Why not do it within libvirt? Or: How do I do this in libvirt?
Do I need to setup my own dhcp server to pass the bootp option? Nope.
Just use libvirts default dnsmasq and add the bootp dhcp option.
All you need to do is editing the default network configuration using virsh (no way o do it from virt-manager).
# virsh net-destroy default # virsh net-edit Now add "<bootp file='/pxelinux.0' server='$PXESERVERIP' />" under /network/ip/dhcp # virsh net-start default
All done.
Just have a look at the definition here to read about more features.