#!/bin/sh # # Edit /export/pxe/MACHINES and run it # SYSNAME=$1 echo "Sysname passed: $SYSNAME" if [ -z "$SYSNAME" ]; then echo "Usage: pxe-add " exit fi MACHINES="/tftpboot/pxe/MACHINES" NETWORKS="/tftpboot/pxe/NETWORKS" GREPNAME="^\<$SYSNAME\>" IPADDR=`grep $GREPNAME $MACHINES | grep -v \# | awk '{print $2}'` ETHER=`grep $GREPNAME $MACHINES | grep -v \# | awk '{print $3}'` MACADDR=`echo $ETHER | sed "s/://g" | tr "[:lower:]" "[:upper:]"` SOLARIS=`grep $GREPNAME $MACHINES | grep -v '#' | awk '{print $4}'` TTY=`grep $GREPNAME $MACHINES | grep -v '#' | awk '{print $5}'` if [ "$IPADDR" = "" ]; then echo "pxe-add: $SYSTEM is not in MACHINES file" exit fi echo "--- PXE -> Install image specified: $SOLARIS" echo "--- PXE -> MACaddr: $MACADDR" echo "--- PXE -> IPaddr: $IPADDR" NETWORK=`echo $IPADDR | awk -F. '{print $1"."$2"."$3}'` SRVADDR=`grep $NETWORK.0 $NETWORKS | grep -v '#' | awk '{print $2}'` SRVNAME=`grep $NETWORK.0 $NETWORKS | grep -v '#' | awk '{print $3}'` echo "--- PXE -> Network: $NETWORK" echo "--- PXE -> Netaddr: $SRVADDR" MMAC="01$MACADDR" /tftpboot/pxe/pxe-del $SYSNAME echo "Creating symlinks in /tftpboot/:" cd /tftpboot/pxe ln -s $SOLARIS $SYSNAME echo "pxe/$SYSNAME -> pxe/$SOLARIS" cd /tftpboot ln -s pxe/bootenv.rc/$TTY $MMAC.bootenv.rc echo "$MMAC.bootenv.rc -> pxe/bootenv.rc/$TTY" ln -s pxe/$SYSNAME/inetboot $MMAC.inetboot echo "$MMAC.inetboot -> pxe/$SYSNAME/inetboot" ln -s pxe/$SOLARIS/nbp $MMAC.nbp ARGS=":SbootURI=\"tftp://$SRVADDR/$MMAC.inetboot\":SinstPTH=\"/tftpboot/pxe/$SYSNAME/cdrom\":SrootPTH=\"/tftpboot/pxe/$SYSNAME/root\":BootFile="$MMAC.nbp":Include=$NETWORK.0:" echo "--- PXE -> dhtadm ARGS: $ARGS" dhtadm -A -m $MMAC -d $ARGS echo "--- PXE -> Creating a macro for $SYSNAME..." pntadm -A $SYSNAME -i $MMAC -m $NETWORK.0 -f PERMANENT $NETWORK.0 echo "Restarting in.dhcp..." # Pre-Greenline # /etc/init.d/dhcp stop # /etc/init.d/dhcp start # Post-Greenline svcadm restart network/dhcp-server