Date: Sat, 02 Aug 2003 14:50:32 -0400 (EDT) From: John Baldwin <jhb@FreeBSD.org> To: Matthew <matthew@syrah.us> Cc: freebsd-config@freebsd.org Subject: RE: Extending sysinstall a la Kickstart Message-ID: <XFMail.20030802145032.jhb@FreeBSD.org> In-Reply-To: <20030801200829.GA23119@silence.syrah.us>
next in thread | previous in thread | raw e-mail | index | archive | help
On 01-Aug-2003 Matthew wrote:
> Hello,
>
> I'm a new freebsd user. I recently switched from (RedHat)
> Linux for various reason.
>
> Is anyone aware of a a "Kickstart" equivalent for FreeBSD?
>
> RedHat's Kickstart system allows you to automate the install
> process. You make a single install floppy, stick it in the floppy
> drive, turn on (or reboot) the computer, wait 5 to 20 minutes
> (depending upon the size of the install), remove the floppy, and then
> reboot into a freshly installed OS.
>
> (Alternatively, you can have the Kickstart process rewrite the
> floppy, turing it into a book disk. In this case, you don't need to
> remove the floppy, and Kickstart can then automatically reboot the
> machine when installation is complete. In this scenario, you can
> leave floppies sitting in remote, network accessible machines. When
> you want to reinstall the OS on them, you write a Kickstart image to
> the floppy, reboot the server, and then simply wait, all of which can
> be done remotely over the network.)
>
> I've done a lot of searching for Kickstart equivalents for
> FreeBSD, and it looks like the closest thing is /stand/sysinstall's
> scripting capabilities.
>
> I'm planning on extending /stand/sysinstall to increase the
> degree to which installation can be automated. Specficially:
>
> * Hard drive partitioning. I can press "A" both during the
> primary ("slice level"?) and secondary ("partition level"?)
> partitioning during a manual install. However, I cannot currently
> script secondary level "auto" partitioning.
>
> * Network configuration. I can manually configure the network
> interface via sysinstall. But I cannot automate this process unless:
> 1. I use DHCP
> 2. I know the name of the ethernet device
>
> I want to be able to specify, via a script, the IP address,
> host name, domain, netmask, etc. I also to specify, via a script,
> that I don't know the ethernet device name so sysinstall should just
> use the first ethernet device it finds. I recognize that sysinstall
> cannot always autodetect the ethernet device, so the script will fail
> in these cases.
>
> I'm pretty confident that make these extensions to sysinstall,
> as they are simply extensions which allow the scripts to access
> already extant sysinstall functionality.
>
> I'd like to make them in such a way that they can be merged
> into the FreeBSD project so that others have easy access to them. Are
> there any guidelines I should follow? I searched the handbooks for
> instructions and guidelines on becoming a FreeBSD developer, but
> didn't find anything. Perhaps I missed it?
>
> I'm planning on modifying sysinstall in 4-8-stable. It looks
> like sysinstall has recently moved from /usr/src/release/sysinstall to
> /usr/src/usr.sbin/sysinstall? Have there been other significant
> changes to sysinstall recently?
Your best bet is to make use of shell scripts that generate
config files. This is what I do to accomplish similar tasks,
thus, you can do:
install.cfg
------------
command=sh /stand/installtype.sh
system
config=installtype.cfg
LoadConfig
and have installtype.sh generate installtype.cfg on the fly.
I added dialog to the /stand crunchgen and used this sort of
thing to reduce the install for our custom boxes at work down
to a couple of simple menus for the common cases. sysinstall's
scripting support is quite braindead, and a better solution is
not to keep hacking on it I think, but to embed a real scripting
language like python into sysistall.
--
John Baldwin <jhb@FreeBSD.org> <>< http://www.FreeBSD.org/~jhb/
"Power Users Use the Power to Serve!" - http://www.FreeBSD.org/
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?XFMail.20030802145032.jhb>
