Create Custom Fog Registration menu

In this example we will be using the Fog manual (Full Host Registration) process as a template, but slightly customizing it so that it only prompts for PC name Image ID and also automatically assigns the PC to the Windows 7 OS ID.

Firstly we will need to edit the Init.gz image (Modifying_the_Init_Image)

open a terminal and enter the following

cd /tftpboot/fog/images gunzip init.gz mkdir initmountdir mount -o loop init initmountdir

Navigate to /tftboot/fog/images/initmountdir/bin

Make a copy fog.man.reg

Rename the copy to fog.custom.reg

Open fog.custom.reg

Make the following changes ( Red = Remove code, Blue = Add code )

Lines 73-81 host=""; ip=""; imageid=""; osid=" NQ== "; primaryuser=""; other1=""; other2=""; blImage=""; blDoAD="";

(note "NQ==" is the number 5 'Windows 7' encoded in base64)

Delete the following code to remove the prompt for IP address

Lines 88-91  echo echo -n "   Enter the ip for this computer: "; read ip; ip=`echo $ip | base64`;

Delete the following code to remove the prompt for OS ID

Lines 109-123  while [ "$osid" = "" ] do echo echo -n "   Enter the OS ID for this computer (? for listing): "; .... .... osid=`echo $osid | base64`; fi done

Delete the following code to remove the prompt for adding to Active directory

Lines 125-140  if [ "$blDoAD" = "" ] then echo .... .... esac fi

Delete the following code to remove the prompts for Primary User, Tag 1 and Tag 2

Lines 142-155  echo echo -n "   Enter the primary user for this computer: "; read primaryuser; primaryuser=`echo $primaryuser | base64`; echo echo -n "   Enter the other tag #1 for this computer: "; read other1; other1=`echo $other1 | base64`; echo echo -n "   Enter the other tag #2 for this computer: "; read other2; other2=`echo $other2 | base64`;

Make the following changes to so only the fields we have data for is sent back to the fog server

Lines 202-204

res=`wget -O - --post-data="mac=${mac}&advanced=1&host=${host} &ip=${ip} &imageid=${imageid}&osid=${osid} &primaryuser=${primaryuser}&other1=${other1}&other2=${other2} &doimage=${realdoimage} &doad=${blDoAD} "

Now save this document as fog.custom.reg

Navigate to /tftboot/fog/images/initmountdir/etc/init.d

Open S99Fog and add the following lines

elif [ "$mode" == "clamav" ]; then run="/bin/fog.av"; after=$afterActionTerm; elif [ "$mode" == "customreg" ]; then run="/bin/fog.custom.reg"; after=$afterActionTerm; elif [ "$mode" == "autoreg" ]; then run="/bin/fog.auto.reg"; after=$afterActionTerm;

Save this document

We now need to recreate the init.gz file with these new settings open a terminal window and type cd /tftpboot/fog/images umount initmountdir/ rmdir initmountdir gzip init

Finally we can add another menu option in the PXE boot menu so we can boot into our custom Registration process

navigate to /tftpboot/pxelinux.cfg

Open the file named default and add the following code (where you add this will depend on where in the menu you would like it to appear)

 LABEL fog.customreg kernel fog/kernel/bzImage append initrd=fog/images/init.gz root=/dev/ram0 rw ramdisk_size=127000 ip=dhcp dns=*.*.*.* mode=customreg web=*.*.*.*/fog/ quiet MENU LABEL Custom Host Registration and Inventory NOTE the * should be replaced with your DNS and Fog Server IP addresses (check what the fog.reg and fog.reginput entries are and use the same)

Thats it. Now when you boot your PC your PXE menu should have a new menu option called "Custom Host Registration" If you select this option you will go through the Fog registration and you will only be prompted for the PC name, The Image ID and whether or not you want to image the PC Now, by default the PC will have the Windows 7 OS ID