Difference between revisions of "User:Asc"

From FAIWiki
Jump to navigation Jump to search
Line 1: Line 1:
 +
= MAC Based booting =
 +
 
Installing with PXE and FAI MAC Address based.
 
Installing with PXE and FAI MAC Address based.
 +
 +
With this hooks and some small changes in dhcpd.conf (based on FAI-CD) every computer that boots fai become a MAC based config file in the pxelinux.cfg/ dir.
 +
 +
== File dhcpd.conf ==
 +
<pre>
 +
....
 +
# deny unknown-clients
 +
....
 +
subnet 192.168.1.0 netmask 255.255.255.0
 +
{
 +
  range 192.168.1.200 192.168.1.249;
 +
  ....
 +
</pre>
  
 
If you press <shift> key during pxe booting you can get a prompt.  
 
If you press <shift> key during pxe booting you can get a prompt.  
Line 22: Line 37:
 
SSHUSER=fai
 
SSHUSER=fai
 
TFTPSERVER=faiserver
 
TFTPSERVER=faiserver
# TFTPSERVER=nsc
 
# TFTPCONFDIR="/var/lib/tftpboot/pxelinux.cfg"
 
# SSHUSER=cardtest
 
  
 
HOSTNAME="default"
 
HOSTNAME="default"
Line 65: Line 77:
 
SSHUSER=fai
 
SSHUSER=fai
 
TFTPSERVER=faiserver
 
TFTPSERVER=faiserver
# TFTPCONFDIR="/var/lib/tftpboot/pxelinux.cfg"
+
 
# SSHUSER=cardtest
 
# TFTPSERVER=nsc
 
 
HOSTNAME="local"
 
HOSTNAME="local"
  
Line 118: Line 128:
 
kernel vmlinuz-install
 
kernel vmlinuz-install
 
append ip=dhcp devfs=nomount FAI_ACTION=install HOST=demohost root=/dev/nfs nfsroot=/usr/lib/fai/nfsroot,v2,rsize=32768,wsize=32768  FAI_FLAGS=verbose,sshd,createvt
 
append ip=dhcp devfs=nomount FAI_ACTION=install HOST=demohost root=/dev/nfs nfsroot=/usr/lib/fai/nfsroot,v2,rsize=32768,wsize=32768  FAI_FLAGS=verbose,sshd,createvt
 +
 +
label mkboot
 +
kernel vmlinuz-install
 +
append ip=dhcp devfs=nomount FAI_ACTION=mkboot root=/dev/nfs nfsroot=/usr/lib/fai/nfsroot,v2,rsize=32768,wsize=32768  FAI_FLAGS=verbose,sshd,createvt,reboot
 +
 +
</pre>
 +
default demohost
 +
 +
== File: /boot/fai/pxelinux.cfg/sysinfo ==
 +
 +
<pre>
 +
default sysinfo
 +
 +
label sysinfo
 +
kernel vmlinuz-install
 +
append ip=dhcp devfs=nomount FAI_ACTION=sysinfo root=/dev/nfs nfsroot=/usr/lib/fai/nfsroot,v2,rsize=32768,wsize=32768  FAI_FLAGS=verbose,sshd,createvt
 +
 +
label mkboot
 +
kernel vmlinuz-install
 +
append ip=dhcp devfs=nomount FAI_ACTION=mkboot root=/dev/nfs nfsroot=/usr/lib/fai/nfsroot,v2,rsize=32768,wsize=32768  FAI_FLAGS=verbose,sshd,createvt,reboot
 
</pre>
 
</pre>

Revision as of 22:20, 19 May 2006

MAC Based booting

Installing with PXE and FAI MAC Address based.

With this hooks and some small changes in dhcpd.conf (based on FAI-CD) every computer that boots fai become a MAC based config file in the pxelinux.cfg/ dir.

File dhcpd.conf

....
# deny unknown-clients
....
subnet 192.168.1.0 netmask 255.255.255.0
{
  range 192.168.1.200 192.168.1.249;
  ....

If you press <shift> key during pxe booting you can get a prompt.

Possible commands are:

mkboot HOST=local  
mkboot HOST=remove 
.....
mkboot HOST=demohost
.....

Hook mkboot

#! /bin/bash 
# hook mkboot for fai.
# If you start this script on a fai client it copy, create or delete a pxe bootfile. It use the ethernet mac
# address of the fai client. 

cd /tmp 
TFTPCONFDIR="/boot/fai/pxelinux.cfg"
SSHUSER=fai
TFTPSERVER=faiserver

HOSTNAME="default"
if [ "$HOST" != "" ]; then HOSTNAME=$HOST; fi ;
BOOTMAC=`/sbin/ifconfig "$netdevices_up" |grep HWaddr|cut -d " " -f11|tr ':' '-'|tr '[:upper:]' '[:lower:]'`
BOOTMAC="01-"$BOOTMAC
echo Next Boot will boot or install: $HOSTNAME on $BOOTMAC.
echo "!!! OK - Press ctrl-c to interrupt FAI and to get a shell"

case $HOSTNAME in
    disable)
        ssh $SSHUSER@$TFTPSERVER "mv $TFTPCONFDIR/$BOOTMAC $TFTPCONFDIR/$BOOTMAC\.disable" ;;
    local)
        ssh $SSHUSER@$TFTPSERVER "mv $TFTPCONFDIR/$BOOTMAC $TFTPCONFDIR/$BOOTMAC\.disable ; cp $TFTPCONFDIR/local $TFTPCONFDIR/$BOOTMAC " ;;
    enable)
        ssh $SSHUSER@$TFTPSERVER "mv $TFTPCONFDIR/$BOOTMAC\.disable $TFTPCONFDIR/$BOOTMAC" ;;
    remove)
        ssh $SSHUSER@$TFTPSERVER "rm $TFTPCONFDIR/$BOOTMAC" ;;
    *)
        ssh $SSHUSER@$TFTPSERVER "cp $TFTPCONFDIR/$HOSTNAME $TFTPCONFDIR/$BOOTMAC" ;;
esac

task_faiend

# End of mkboot

Hook chboot.default

 
#! /bin/sh 
# hook for fai. Set boot to local 
set -xv

SCRIPTNAME=`basename $0`
skiptask=`echo $SCRIPTNAME | sed "s/\..*$//"`

cd /tmp 
TFTPCONFDIR="/boot/fai/pxelinux.cfg"
SSHUSER=fai
TFTPSERVER=faiserver

HOSTNAME="local"

BOOTMAC=`/sbin/ifconfig "$netdevices_up" |grep HWaddr|cut -d " " -f11|tr ':' '-'|tr '[:upper:]' '[:lower:]'`
BOOTMAC="01-"$BOOTMAC
echo Next Boot will boot or install: $HOSTNAME on $BOOTMAC.

case $HOSTNAME in
    local)
        ssh $SSHUSER@$TFTPSERVER "mv $TFTPCONFDIR/$BOOTMAC $TFTPCONFDIR/$BOOTMAC\.disable ; cp $TFTPCONFDIR/local $TFTPCONFDIR/$BOOTMAC " ;;
    *)
        ssh $SSHUSER@$TFTPSERVER "cp $TFTPCONFDIR/$HOSTNAME $TFTPCONFDIR/$BOOTMAC" ;;
esac

skiptask $skiptask 

# End of hook chboot.DEFAULT

File: /boot/fai/pxelinux.cfg/default

default sysinfo

label sysinfo
kernel vmlinuz-install
append ip=dhcp devfs=nomount FAI_ACTION=mkboot HOST=sysinfo root=/dev/nfs nfsroot=/usr/lib/fai/nfsroot,v2,rsize=32768,wsize=32768  FAI_FLAGS=verbose,sshd,createvt,reboot

label mkboot
kernel vmlinuz-install
append ip=dhcp devfs=nomount FAI_ACTION=mkboot root=/dev/nfs nfsroot=/usr/lib/fai/nfsroot,v2,rsize=32768,wsize=32768  FAI_FLAGS=verbose,sshd,createvt,reboot

File: /boot/fai/pxelinux.cfg/local

default local

label local
localboot 0

label mkboot
kernel vmlinuz-install
append ip=dhcp devfs=nomount FAI_ACTION=mkboot root=/dev/nfs nfsroot=/usr/lib/fai/nfsroot,v2,rsize=32768,wsize=32768  FAI_FLAGS=verbose,sshd,createvt,reboot

File: /boot/fai/pxelinux.cfg/demohost

default demohost

label demohost
kernel vmlinuz-install
append ip=dhcp devfs=nomount FAI_ACTION=install HOST=demohost root=/dev/nfs nfsroot=/usr/lib/fai/nfsroot,v2,rsize=32768,wsize=32768  FAI_FLAGS=verbose,sshd,createvt

label mkboot
kernel vmlinuz-install
append ip=dhcp devfs=nomount FAI_ACTION=mkboot root=/dev/nfs nfsroot=/usr/lib/fai/nfsroot,v2,rsize=32768,wsize=32768  FAI_FLAGS=verbose,sshd,createvt,reboot

default demohost

File: /boot/fai/pxelinux.cfg/sysinfo

default sysinfo

label sysinfo
kernel vmlinuz-install
append ip=dhcp devfs=nomount FAI_ACTION=sysinfo root=/dev/nfs nfsroot=/usr/lib/fai/nfsroot,v2,rsize=32768,wsize=32768  FAI_FLAGS=verbose,sshd,createvt

label mkboot
kernel vmlinuz-install
append ip=dhcp devfs=nomount FAI_ACTION=mkboot root=/dev/nfs nfsroot=/usr/lib/fai/nfsroot,v2,rsize=32768,wsize=32768  FAI_FLAGS=verbose,sshd,createvt,reboot