Skip site navigation (1)Skip section navigation (2)
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>