Difference between revisions of "User:Asc"

From FAIWiki
Jump to navigation Jump to search
(move page from user page.)
Line 1: Line 1:
= MAC Based booting =
+
Hello,
  
Currently Work on:
+
I am Andreas and currently I work on:
[[ /MACbasedBooting ]]
+
[[ MAC_based_Booting_PXE ]]
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. May be in the future a GUI can use/change this information.
 
 
 
== 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.
 
 
 
Possible commands are:  
 
mkboot HOST=local 
 
mkboot HOST=remove
 
.....
 
mkboot HOST=demohost
 
.....
 
 
 
== Hook mkboot ==
 
 
 
<pre>
 
#! /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
 
</pre>
 
 
 
== Hook chboot.default ==
 
 
 
<pre>
 
#! /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
 
</pre>
 
 
 
== File: /boot/fai/pxelinux.cfg/default ==
 
<pre>
 
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
 
</pre>
 
 
 
== File: /boot/fai/pxelinux.cfg/local ==
 
<pre>
 
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
 
</pre>
 
 
 
== File: /boot/fai/pxelinux.cfg/demohost ==
 
<pre>
 
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
 
 
 
</pre>
 
 
 
== 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>
 

Revision as of 11:09, 20 May 2006

Hello,

I am Andreas and currently I work on: MAC_based_Booting_PXE