PXE Menu Delete Host
-
Alright, all completed and, from what I can tell, working great.
First things first.
[B]NOTE: If things aren’t running or giving permission denied errors try prepending with sudo[/B]EXAMPLE:
[CODE]sudo gunzip init.gz[/CODE]
Login to your FOG server so you are the root owner, or with someone with sudo privileges.Change directory into your FOG tftpboot folder usually:
[CODE]cd /tftpboot/fog/images[/CODE]Create a backup of the current init.gz:
[CODE]cp /tftpboot/fog/images/init.gz /tftpboot/fog/images/init_orig.gz[/CODE]Extract the init.gz file with:
[CODE]gunzip init.gz[/CODE]Make a directory to mount the file (I usually create tmp inside the images folder.)
[CODE]mkdir tmp[/CODE]Mount the init file to the tmp directory.
[CODE]mount -o loop init tmp[/CODE]Edit (use the editor you’re comfortable with) the etc/init.d/S99fog file:
[CODE]vi tmp/etc/init.d/S99fog[/CODE]Add these three lines [B]ABOVE[/B] the fi statement at the bottom of the page.
[CODE]elif [ “$mode” == “delreg”]; then
run=“/bin/fog.auto.del”;
after=$afterActionTerm;[/CODE]Now download the fog.auto.txt file linked to this post.
Then rename the file to fog.auto.del
Place on your FOG Server at:
[CODE]/tftpboot/fog/images/tmp/bin[/CODE]Make sure the file is owned by user root and is executable with:
[CODE]chmod +x /tftpboot/fog/images/tmp/bin/fog.auto.del; chown root:root /tftpboot/fog/images/tmp/bin[/CODE]Now you should be complete with the editing of the init.gz file. Close it out:
[CODE]cd /tftpboot/fog/images
umount /tftpboot/fog/images/tmp
rm -rf /tftpboot/fog/images/tmp
gzip -9 init[/CODE]Now you’re going to edit the pxe file with:
[CODE]cd /tftpboot/pxelinux.cfg
vi default[/CODE]Add the following lines [B]ABOVE[/B] the PROMPT 0 line:
[CODE]LABEL fog.del
MENU PASSWD password
KERNEL fog/kernel/bzImage
APPEND initrd=fog/images/init.gz root=/dev/ram0 rw ramdisk_size=127000 ip=dhcp dns=X.X.X.X mode=delreg keymap= web=X.X.X.X/fog/ loglevel=4 consoleblank=0
MENU LABEL Quick Host Deletion
TEXT HELP
Automatically delete the host from FOG.
ENDTEXT[/CODE][B]NOTE: Don’t forget to change your dns and web fields for your particular host.[/B]
Of course change the MENU PASSWD to what yours is setup for encrypted or not.
Now copy the auto.delete.php file attached to this post to your service directory usually located at:
FOR MOST REDHAT DEFAULT HTTP
[CODE]/var/www/html/fog/service[/CODE]
or:
FOR MOST UBUNTU DEFAULT HTTP
[CODE]/var/www/fog/service[/CODE]Then you should be complete.
Hopefully I’ve helped.
[url=“/_imported_xf_attachments/0/399_auto.delete.php?:”]auto.delete.php[/url][url=“/_imported_xf_attachments/0/403_fog.auto.txt?:”]fog.auto.txt[/url]
-
AWESOME THANK YOU, this saves me time and misspellings
-
I don’t know 0.32 layout, but I imagine that everything is similar but they’re not fully class based php files.
That being said, here’s the code snippets that I used to add the deletion fog menu option to allow for password changes to the files.
On 0.33 the files where:
[CODE]{fogwebdir}/lib/pages/FOGConfigurationPage.class.php
{fogwebdir}/commons/functions.include.php[/CODE]In FOGConfigurationPage.class.php I added to the pxemenu function below the quickimage table row end statement (</tr>):
[PHP]
<tr>
<td>fog.deletehost password (blank for none):</td>
<td><input type=“password” name=“delhost” value=“” id=“delhost” /></td>
</tr>
[/PHP]
Then I had to change the below line in pxemenu_post() function:
[PHP]
if (generatePXEMenu($conn,$_POST[“menutype”],$_POST[“masterpassword”],$_POST[“memtestpassword”],$_POST[“reginputpassword”],$_POST[“regpassword”],$_POST[“quickimage”],$_POST[“sysinfo”],$_POST[“debugpassword”],$_POST[“timeout”],$_POST[“hidemenu”] == “on”,$_POST[‘adv’],$reason))
[/PHP]
To:
[PHP]if (generatePXEMenu($conn,$_POST[“menutype”],$_POST[“masterpassword”],$_POST[“memtestpassword”],$_POST[“reginputpassword”],$_POST[“regpassword”],$_POST[“quickimage”],$_POST[“sysinfo”],$_POST[“debugpassword”],$_POST[“timeout”],$_POST[“hidemenu”] == “on”,$_POST[‘adv’],$_POST[‘delhost’],$reason))[/PHP]In functions.include.php I added below the Quick Image ENDTEXT Stanza within the generatePXE function:
In the line with:
[PHP]function generatePXEMenu( $conn, $type, $masterpw, $memtestpw, $reginputpw, $regpw, $quickpw, $sysinfo, $debugpw, $timeout, $blHide, $adv, &$reason )[/PHP]
Changed it to say:
[PHP]function generatePXEMenu( $conn, $type, $masterpw, $memtestpw, $reginputpw, $regpw, $quickpw, $sysinfo, $debugpw, $timeout, $blHide, $adv, $delhost, &$reason )[/PHP]
Under the line saying:
[PHP]$encSysinfo = “MENU PASSWD " . sysLinuxEncrypt( $conn, $sysinfo );[/PHP]
I added two new lines:
[PHP]if ( $delhost != null )
$encDel = “MENU PASSWD " . sysLinuxEncrypt( $conn, $delhost );[/PHP]
Then below the fog.quickimage ENDTEXT stanza I added the following lines.
[PHP]LABEL fog.quickdel
$encDel
kernel " . $GLOBALS[‘FOGCore’]->getSetting( “FOG_TFTP_PXE_KERNEL” ) . "
append initrd=” . $GLOBALS[‘FOGCore’]->getSetting( “FOG_PXE_BOOT_IMAGE” ) . " root=/dev/ram0 rw ramdisk_size=” . $GLOBALS[‘FOGCore’]->getSetting( “FOG_KERNEL_RAMDISK_SIZE” ) . " ip=dhcp dns=" . $GLOBALS[‘FOGCore’]->getSetting( “FOG_PXE_IMAGE_DNSADDRESS” ) . " mode=delreg keymap=" . $GLOBALS[‘FOGCore’]->getSetting( “FOG_KEYMAP” ) . " web=" . $GLOBALS[‘FOGCore’]->getSetting( “FOG_WEB_HOST” ) . $GLOBALS[‘FOGCore’]->getSetting( “FOG_WEB_ROOT” ) . " loglevel=4 consoleblank=0
MENU LABEL “.(“Quick Host Deletion”)."
TEXT HELP
".(“Automatically delete the host from FOG.”).”
ENDTEXT[/PHP][B]NOTE: I am a developer, so some of my changes are going to be slightly different than yours, I’m working off my personal code to help the system. [I]YOUR RESULTS MAY VERY![/I][/B]
-
I’ve been contemplating setting up a 0.33 server, but my 0.32 server works so well! I will figure out the ins and outs of getting this to work on 0.32 and post my findings.