Anaconda kickstart options and lowlevel netboot.img input options.

Tom Miller tmafs at us.ibm.com
Tue Aug 22 23:59:21 UTC 2006


Colin, 
   When the power 5 lpars boot up, a boot option menu is presented to the user on the console for that lpar. The user can choose to break into the boot and navigate the boot control menus. Where, he can pick a nic adapter to use to issure the (bootp) request to a pre setup network install server.. We load aix and linux the same way at this level in the open firmware. The user must supply, ip of victim, ip of server, mask and gateway, and he can test ping the server to see if that nic is really connected to the network and the server is up. Once 
the connected adapter is found, the user can set this nic as the boot device and off it goes, issuing the bootp request to the server.  Bootp is the only option we have on these machines. My expect code does all of this automatically, stopping in the boot menus during boot, finding the nic that will ping and setting the boot list.. It also uses the low level open firmware menus to setevn boot-file text ip=9.3.218.145 netmask=255.255.255.0 gateway=9.3.218.1 nameserver=9.0.7.1 ksdevice=eth0 ks=nfs:9.3.80.16:/lpars/unitedp02.cfg

so that these parms are passed to whatever boot image is retrived by bootp. 

So first OF menus needs ip to do  boop, 
then netboot.img needs ip stuff to get kickstart file. 
then adconda needs ip stuff in kickstart file to config network for install. 

I already use PXELINUX to install the big machinds Hardware Management Consoles. They run linux on X86 platform. And it works ok there in our local lab, but again not outside the subnet.  The OF code for these lpars does not support PXELINUX. 

I think my only hope is to find out is there is some systax that will work to pass the mac address to anacondo instead of the ethX..  If power 5 keeps supporting linux RedHat I am hope the anacondo developers will get around accepting the mac address. 

I also load linux SuSE from my servers and I have already done succesfull autoyast installs with and autoinst.xml file.  Now these files (autoinst.xml) will take input like this: 

<device>eth-id-2a:ca:30:00:20:02</device>

they define the device with mac address. 

I have not yet tried passing the suse netboot image a nic name of this form. But I am hopeing it will work since the autoinst file uses that format in SuSE installs.  


tom 

Tuesday, August 22, 2006 6:30 PM
To: "Discussion list about Kickstart" <kickstart-list at redhat.com>
cc: 
From: "Coe, Colin C." <Colin.Coe at woodside.com.au>
Subject: RE: Anaconda kickstart options and lowlevel netboot.img   input   options.


Hi Tom

No, I'm not an Anaconda coder.  There are quirks in the installer but the issue with the swapped NICs I believe is a kernel compile config quirk rather than an Anaconda problem.  Pity about the DHCP.

As I said, I'm not an Anaconda or Python coder, but what about a custom install class?  Is this were a custom install class would be used?  Also, given your working with Power5 LPARs I can only assume you're working with a beastie along the lines of a P595, maybe you could query the hypervisor?  I know these are pretty locked down but...

Just out of curiosity, what boot method do these use (bootp/pxe/etc)?  If its PXE and you're able to use PXELINUX (I don't know if you can), you might be able to make use of the IPAPPEND option.  Or better yet, you could have your expect script create a symlink called the MAC address of the NIC you want to use which points to a standard pxelinux config file.  For example
2A:CA:30:00:40:02

/tftpboot/pxelinux.cfg/2a-ca-30-00-40-02 -> el4_lpar02
/tftpboot/pxelinux.cfg/el4_lpar02

Where el4_lpar02 would contain something like

label el4_lpar
        kernel el4u4/vmlinuz
        append ksdevice=eth0 ks=nfs:9.3.80.16:/export/install/ks.cfg initrd=el4u4/initrd.img ip=9.3.22.202
method=nfs:10.240.34.254:/export/install/el4u4_x86_64

CC


 -----Original Message-----
From: kickstart-list-bounces at redhat.com [mailto:kickstart-list-bounces at redhat.com] On Behalf Of Tom Miller
Sent: Wednesday, 23 August 2006 2:09 AM
To: Discussion list about Kickstart
Subject: RE: Anaconda kickstart options and lowlevel netboot.img input options.


Collin, 
   Thanks for your reply.
   I would love to use dhcp, this would solve all my problems but IBM prevents me from doing that. They do not pass dhcp requests thru the site bridges/gateways/routes so I would have to have a dhcp server on each subnet that contained victims to install. I have 5 servers in
Austin, one in Rochester, Mn and one in Poughkeepsie, NY and they install 100's of systems
a week on many different subnets. 

   I did not realize that the installer and kernel couldn't even agree on which nic was eth0.
Thats all the more need for anacondo and the netboot.img to deal with mac addresses.

You don't happen to be an anaconda coder do you?

thanks
tom

Monday, August 21, 2006 7:51 PM
To: "Discussion list about Kickstart" <kickstart-list at redhat.com>
cc: 
From: "Coe, Colin C." <Colin.Coe at woodside.com.au>
Subject: RE: Anaconda kickstart options and lowlevel netboot.img input   options.


If you know the MAC addr, could you use a DHCP server with an entry for each LPAR you want to install?  Something like:

allow booting;
allow bootp;

...

group {
        subnet 9.3.22.0 netmask 255.255.255.0 {
                option domain-name "ibm.com";
                option subnet-mask 255.255.255.0;
                option broadcast-address 9.3.22.255;
                option domain-name-servers 9.0..7.1;
                option routers 9.3.22.1;
        }
        # PXE-specific configuration directives...
        next-server 9.3.22.253;
        filename "pxelinux.0";

...

       host lpar02 {
                hardware ethernet 2A:CA:30:00:40:02;
                fixed-address 9.3.22.202;
                option host-name "lpar02";
        }

...
}

Just a thought.

Also, if you're using EL4, beware that sometimes the NIC that the installer decides is eth0 is not what the installed kernel thinks is eth0.

CC
-----Original Message-----
From: kickstart-list-bounces at redhat.com [mailto:kickstart-list-bounces at redhat.com] On Behalf Of Tom Miller
Sent: Tuesday, 22 August 2006 3:06 AM
To: kickstart-list at redhat.com
Subject: Anaconda kickstart options and lowlevel netboot.img input options. 



I am using a kickstart.cfg file to load power 5 lpars via network install. I use a bootp server
to deliver the RedHat netboot.img to the victim machine, I set the boot-file SMS env variable to pass boot image parms to netboot.img.  Here's what I pass:

 text ip=9.3.22.104 netmask=255.255.255.128 gateway=9.3.22.1 nameserver=9.0.7.1 ksdevice=eth0 ks=nfs:9.3.80.16:/lpars/sift22104.cfg
This lets the netboot.img config eth0 to access the ks file on the server. 

I have this network line in the /lpars/sift22104.cfg kickstart file: 

network --device eth0 --bootproto static --ip 9.3.22.104 --netmask 255.255.255.128 --gateway 9.3.22.1 --nameserver 9.0.7.1 --hostname sift22104.austin.ibm.com

This works just fine and the install completes. 

I need to make this work on lpars that have never been loaded before and these lpars can have several eth adapters so the user will not know what order the adatpers will be configured so he can't specify eth0 or eth1 in the options above.  I have expect code that goes thru the SMS menus and attempts to ping the server on each eth adatper until it finds one that is connected: I can pull the mac address for that card and could at that point create the netboot.img boot parms line that includes the mac address, but there is no way I can know what ethX redhat will confgure this card as.  I tried changing the netboot.img parms line to:
 text ip=9.3.22.104 netmask=255.255.255.128 gateway=9.3.22.1 nameserver=9.0.7.1 ksdevice=eth-id-2a:ca:30:00:40:02 ks=nfs:9.3.80.16:/lpars/sift22104.cfg

and the kickstart network line to this: 
network --device eth-id-2a:ca:30:00:40:02 --bootproto static --ip 9.3.22.104 --netmask 255.255.255.128 --gateway 9.3.22.1 --nameserver 9.0.7.1 --hostname sift22104.austin.ibm.com

But it did not work.. I got a syntax error back from anaconda complaining about this: 

    self.setNetwork(id, bootProto, ip, netmask, ethtool, device=device, onboot=onboot, dhcpclass=dhcpclass, essid=essid, wepkey=wepkey)
  File "/usr/lib/anaconda/installclass.py", line 332, in setNetwork
    dev = devices[device]
KeyError: 'eth-id-2a:ca:30:00:40:02'

I have searched thru doc's till I am blue and can't find out if there is some way (any correct syntax) to pass the mac address to netboot.img and anaconda instead of the ethX name.

Dose anyone know how this can be done, is it even in the netboot.img/anaconda code to all this and deal with the mac address? 
This is the last thing I need to fully automate these installs for my users with kickstart instead of using expect to fill out all those changing install menus in text mode. 

thanks
tom miller   IBM.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listman.redhat.com/archives/kickstart-list/attachments/20060822/ef616f34/attachment.htm>


More information about the Kickstart-list mailing list