The following steps are required to enable FreeBSD support in Cobbler.
You can grab the patches and scripts from the following github repos:
This would not be possible without the help from Doug Kilpatrick. Thanks Doug!
In the post install "Package Selection" scroll down and select shells
Rebuild pxeboot with tftp support
Patch sysinstall with http install support
The media location is hard coded in this patch and has to be updated every release. Just look for 8.X and change it.
The standard sysinstall doesn't really support HTTP. This patch adds full http support to sysinstall.
We'll use "crunchgen" to create the contents of /stand in a ramdisk image. Crunchgen creates a single statically linked binary that acts like different normal binaries depending on how it's called. We need to include "fetch" and a few other binaries. This is a multi step process.
Once we've added our additional binaries we need to create a larger ramdisk.
Copy everything from the old one to the new one. You'll be replacing the binaries, but it's simpler to just copy it all over.
Next copy over the new bootcrunch file and create all of the symlinks after removing the old binaries.
Sysinstall uses install.cfg to start the install off. We've created a version of the install.cfg that uses fetch to pull down another configuration file from the Cobbler server which allows us to dynamically control the install. install.cfg uses a script called "doconfig.sh" to determine where the Cobbler installer is via the DHCP next-server field.
Copy both install.cfg and doconfig.sh into place.
Now just unmount the ramdisk and compress the file
Copy the mfsroot.gz to the Cobbler server.
DHCP will tell the system to request pxelinux.0, so it will. Pxelinux will request it's configuration file, which will have pxeboot.bs as the "kernel". Pxelinux will request pxeboot.bs, use the extention (.bs) to realize it's another boot loader, and chain to it. Pxeboot will then request all the .rc, .4th, the kernel, and mfsroot.gz. It will mount the ramdisk and start the installer. The installer will connect back to the Cobbler server to fetch the install.cfg (the kickstart file), and do the install as instructed, rebooting at the end.