[1] https://github.com/joelandman/nyble
[2] https://github.com/joelandman/tiburon
[3] https://scalability.org/2019/05/nyble-ftw-installing-my-ramb...
A hint if you're doing this on Linux. We PXEBoot an iPXE loader to boot the machines. Doesn't work properly on UEFI unfortunately, gotta use BIOS boot.
If it helps, I have notes on how to set that up:
Go to http://rom-o-matic.net and choose gPXE git. Click on the "Customize" button to expand all of the options.
Choose: 1. PXE bootstrap loader image [Unload PXE stack] (.pxe)
2. all-drivers
3. PCI VENDOR CODE: [blank] PCI DEVICE CODE: [blank]
X CONSOLE_PCBIOS
_ CONSOLE_SERIAL
BANNER_TIMEOUT [20]
_ NET_PROTO_IPV6
(Serial Port Options are irrelevant)
X DOWNLOAD_PROTO_TFTP
X DOWNLOAD_PROTO_HTTP
_ DOWNLOAD_PROTO_HTTPS
_ DOWNLOAD_PROTO_FTP
_ SANBOOT_PROTO_ISCSI
_ SANBOOT_PROTO_AOE
X DNS_RESOLVER
X IMAGE_ELF
X IMAGE_NBI
X IMAGE_MULTIBOOT
X IMAGE_PXE
X IMAGE_SCRIPT
X IMAGE_BZIMAGE
X IMAGE_COMBOOT
X AUTOBOOT_CMD
X NVO_CMD
X CONFIG_CMD
X IFMGMT_CMD
X IWMGMT_CMD
X ROUTE_CMD
X IMAGE_CMD
X DHCP_CMD
_ SANBOOT_CMD
X LOGIN_CMD
_ TIME_CMD
_ DIGEST_CMD
X PXE_CMD
_ IPV6_CMD
_ CRYPTO_80211_WEP
_ CRYPTO_80211_WPA
_ CRYPTO_80211_WPA2
Embedded Script:
-----------------------------------------------------------------------------
#!gpxe
dhcp any
initrd http://<your_server_here>/initrd.img
kernel http://<your_server_here>/pxelinux.0
imgargs pxelinux.0 root=/dev/nfs rw boot=nfs nfsroot=<your_nfs_server_here>:/netroot root ip=dhcp nfsrootdebug
boot pxelinux.0
-----------------------------------------------------------------------------