Ed - 0x1b, Inc. wrote:
Thank you very much Jonathan - do you think your approach will also
work for OBSD or is it FreeBSD specific? Can FreeBSD be passed a
kickstart file? or are you limited to only installing preconfigured
images?
I've not looked at OBSD at all.
For FreeBSD, the default installer wants the kickstart file to be baked
into the ramdisk. However it's easy enough to build a ramdisk that
fetches it's answer file remotely. And that's what I did.
For those who want to do this themselves, a quick primer to FreeBSD
automated installs, at least up to version 8. :)
1. The default PXE boot loader wants to use NFS. So you need to
recompile it. Build (by old methods) a FreeBSD system with all the
source code on it, and run
(cd /sys/boot; make; make LOADER_TFTP_SUPPORT=yes install)
2. The PXE boot loader uses absolute names. That means to support more
than one version at a time, you'll need to use the python tftp server.
3. The default sysinstall doesn't *really* do HTTP installs. The HTTP
method is just an HTTP proxy for an FTP server. You'll need to patch it
to do HTTP, or export your repository via FTP. Patch available upon
request. (Yes, I submitted it upstream, but the intent is to throw out
sysinstall, so it was not applied)
4. You need to create a new ram disk.
a. Path/recompile sysinstall?
b. Create a boot_crunch with some more tools in it, like "fetch"
and probably some more shell utils (see below)
c. Create a shell script that can download an answer file from
cobbler. That's short enough that I attached it
d. Create a new install.cfg that calls your handy doconfig.sh script
e. Combine all the above in a new mfsroot. That will be your initrd
in cobbler
IIRC, Jonathan's patch should handle most of the cobbler steps (the
/boot directory, setting fetchable_files.
If anyone wants the full breakdown on creating the ramdisk, let me know.
I've got an email around here somewhere with most of the details.
Doug
--
Doug Kilpatrick
kilpatds(a)oppositelock.org
# Turn on extra debugging.
debug=YES
# Turn off all prompting.
nonInteractive=YES
noWarn=YES
command=/bin/sh /stand/doconfig.sh
system
# Chain to the config we just downloaded
configFile=/stand/cobbler.cfg
loadConfig