[OmniOS-discuss] kayak bugs, r151008j

Sean Doran smd at mis.use.net
Mon Jan 20 17:10:14 UTC 2014


On 20 Jan, 2014, at 16:14, Eric Sproul <esproul at omniti.com> wrote:

> On Mon, Jan 20, 2014 at 10:58 AM, Lauri Tirkkonen <lotheac at iki.fi> wrote:
>> 
> Thanks for the work Lauri.  In fact we should probably make
> release-specific branches in Kayak the way we do for illumos-omnios
> and omnios-build, as the files will necessarily be different as
> versions change (perfect example: libxml2 2.9.0/2.9.1)
> 
> Once that is done, it'd be great to retrofit each branch (r151006,
> r151008, master) with an update generated this way.

Neat.

Incidentally, the kayak process works fine with iPXE instead of pxegrub, with one big gotcha, namely that pxegrub gunzips miniroot.gz whereas iPXE does not have that functionality (yet).   The kernel can’t itself deal with a compressed miniroot and promptly crashes.

Given how much better http is than tftp is in almost every way, and ditto iPXE over pxegrub, having an uncompressed miniroot (at ca. 148M rather than 44M) kicking around in /var/kayak/kayak doesn’t seem too awful.

Something like this might go into tftpboot/menu.ipxe:

#!ipxe

set omnios-build r151008j

######## MAIN MENU ###################
:start
menu Welcome to iPXE's Boot Menu
item
item --gap -- ------------------------- Operating systems ------------------------------
item omnios-kayak      Boot OmniOS (needs MAC in /var/kayak/kayak) (${omnios-build})
item --gap -- ------------------------------ Utilities ---------------------------------
item shell      Enter iPXE shell
item reboot     Reboot
item
item exit       Exit (boot local disk)
choose —default omnios-kayak --timeout 30000 target && goto ${target}

# miniroot
:omnios-kayak
kernel /boot/platform/i86pc/kernel/amd64/unix -B install_media=http:///kayak/r151008j.zfs.bz2,install_config=http:///kayak
module /kayak/miniroot
boot
goto start

#end

For chaining purposes, using ISC DHCPD:

subnet x.x.x.x netmask y.y.y.y {
   range … ;
   next-server ka.y.a.k;
   if exists user-class and option user-class = “iPXE” {
	filename = “menu.ipxe”;
   } else {
        filename = “undionly.kpxe”;
   }
}

The undionly.kpxe file can be found at http://boot.ipxe.org/undionly.kpxe and goes into /tftpboot on the kayak server.

The menu.ipxe above can be rewritten to use http rather than tftp.  The easiest way to take advantage of that is to copy the files in the “kernel” and “module” lines to somewhere under /var/kayak/kayak.    If one is provisioning lots of omnioses via kayak or if the kayak server is at a fair distance (round-trip-time-wise) from the systems being provisioned, it’s easily worthwhile.

It’s also worthwhile if you tend to netboot other things.

cf. http://wiki.smartos.org/display/DOC/PXE+Booting+SmartOS  

Finally, the rest of the kayak process remains the same, notably the need to make a configuration file in /var/kayak/kayak.

	Sean.




More information about the OmniOS-discuss mailing list