[prev in list] [next in list] [prev in thread] [next in thread] 

List:       cobbler-devel
Subject:    Acquiring bootloaders
From:       mdehaan () redhat ! com (Michael DeHaan)
Date:       2009-04-28 17:28:57
Message-ID: 49F73CD9.9000608 () redhat ! com
[Download RAW message or body]

So, I didn't like how Cobbler was packaging bootloaders in 
/var/lib/cobbler, as I've stated previously, and wanted to change that 
to allow for people supplying their own versions.

As it stands, this is what I have in Cobbler's devel branch:

"cobbler check" looks for the following bootloader patterns:

       bootloaders = {
          "elilo"      : [ "ia64",       [ 
"/var/lib/cobbler/loaders/elilo*.efi" ]],
          "menu.c32"   : [ "x86/x86_64", [ 
"/var/lib/cobbler/loaders/menu.c32" ]],
          "yaboot"     : [ "ppc/ppc64",  [ 
"/var/lib/cobbler/loaders/yaboot*" ]],
          "pxelinux.0" : [ "x86_64",     [ 
"/usr/share/syslinux/pxelinux.0", "/usr/lib/syslinux/pxelinux.0", 
"/var/lib/cobbler/loaders/pxelinux.0" ]]
       }

If any of those patterns are not matched, Cobbler will suggest that you 
supply the files in question any way you want.  It will also mention 
that if you don't want to go on a bootloader-hunt, you can run "cobbler 
get-loaders" and it will download all of them for you.

The way this works is actually kind of sad.   It's a problem that Fedora 
has no IA64 repo, for instance, and that we must support things in a 
cross-distro sort of way, and not use yum/RPM to get the content...

Not making sense?   Assume you install cobbler on s390 and want to use 
it to install x86_64 boxes, or install on ppc and want to use that to 
install ia64.   Those operating systems
can't simply require the bootloaders in yum -- because they aren't 
there.... and for RHEL, they aren't entitled to access packages for 
other arches anyway.

So, right now, "cobbler get-loaders" implementation is pretty lame.   It 
downloads content from my Fedora space, for any files that are not 
already installed on the system.  For instance, if you have syslinux, it 
will use that, else it will download it.  The implementation is pretty 
primative, but still allows for people compiling or providing their own 
versions and not using the ones we supply, which before, was a problem 
because the RPM owned those files.

I'd appreciate comments on this approach.

There's clearly no "right" way to do this -- seeing not all arches are 
available for all distros, or from all distros, etc, and we can't do 
simple things like saying a ppc RPM requires
syslinux, etc.

I think this should provide a decent compromise -- allowing folks to 
source the content as they like, but also providing them a way to get 
that same content in a quick way if needed and they cannot be bothered 
to grab them from the appropriate RPMs and installs.

As a side effect -- I should say cobbler check's output is getting 
pretty long.  I want to make it aware of optional versus required steps, 
and allow it to be run in ways that omit the optional steps (optional) 
and at least seperate things into categories (i.e. bootloaders vs 
networking config) and print the required/optional in seperate steps.

It's not too bad, but I also don't want a list of 10 items for a user to 
correct to seem too daunting and keep people from playing with the tool 
for the first time.   We walk a line between features and simplicity -- 
as we add features, we risk building a tool that serves the existing 
userbase but has too much of a learning curve for the existing userbase 
-- so we need to make sure that the amount of detail a new user is 
exposed to, and steps that have to perform to get things running, 
remains low -- which is something we've done pretty well in the past I 
think, and need to keep doing.

Comments on bootloader sourcing?

--Michael

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic