@Tom-Elliott That did not have an impact. still seeing ${serial} on the host list. If it helps I am also seeing at the bottom of my host management page
${pingstatus} ${host_name} ${deployed} ${image_name} ${serial}
@Tom-Elliott That did not have an impact. still seeing ${serial} on the host list. If it helps I am also seeing at the bottom of my host management page
${pingstatus} ${host_name} ${deployed} ${image_name} ${serial}
The BIOS Hook is one I was working on but I first need to figure out why the ones that were already made aren’t working before I can try testing my own.
@Tom-Elliott I am not asking for anyone to make anything for me. The hooks I am referring to are already listed in the hooks directory. no of them work except for the VNC one which we don’t use. Below is the serial hook code.
<?php
/**
* The host serial hook.
*
* PHP version 5
*
* @category AddHostSerial
* @package FOGProject
* @author Tom Elliott <tommygunsster@gmail.com>
* @author Greg Grammon <nah@nah.com>
* @license http://opensource.org/licenses/gpl-3.0 GPLv3
* @link https://fogproject.org
*/
/**
* The host serial hook.
*
* @category AddHostSerial
* @package FOGProject
* @author Tom Elliott <tommygunsster@gmail.com>
* @author Greg Grammon <nah@nah.com>
* @license http://opensource.org/licenses/gpl-3.0 GPLv3
* @link https://fogproject.org
*/
class AddHostSerial extends Hook
{
/**
* The name of the hook.
*
* @var string
*/
public $name = 'AddHostSerial';
/**
* The description of the hook.
*
* @var string
*/
public $description = 'Adds host serial to the host lists';
/**
* Is the hook active of not.
*
* @var bool
*/
public $active = false;
/**
* Initializes object.
*
* @return void
*/
public function __construct()
{
parent::__construct();
self::$HookManager
->register(
'HOST_DATA',
array(
$this,
'hostData'
)
)
->register(
'HOST_HEADER_DATA',
array(
$this,
'hostTableHeader'
)
);
}
/**
* The data to alter.
*
* @param mixed $arguments The items to alter.
*
* @return void
*/
public function hostData($arguments)
{
global $node;
if ($node != 'host') {
return;
}
$arguments['templates'][] = '${sysserial}';
$arguments['attributes'][] = array(
'class' => 'c',
'width' => '20',
);
$items = $arguments['data'];
$hostnames = array();
foreach ((array)$items as &$data) {
$hostnames[] = $data['host_name'];
unset($data);
}
Route::listem(
'host',
'name',
false,
array('name' => $hostnames)
);
$Hosts = json_decode(
Route::getData()
);
$Hosts = $Hosts->hosts;
foreach ((array)$Hosts as &$Host) {
$arguments['data'][$i]['serial'] = $Host
->inventory
->sysserial;
unset($Host);
}
unset($Hosts);
}
/**
* Alter the table header data.
*
* @param mixed $arguments The arguments to alter.
*
* @return void
*/
public function hostTableHeader($arguments)
{
global $node;
if ($node != 'host') {
return;
}
$arguments['headerData'][] = _('Serial');
}
}
Any ideas on this? I have still been unable to locate the issue.
@FlareImp Issue fixed with
DELETE * FROM hostMAC where hmPrimary = '0';
Fog 1.5.9
Ubuntu 22.04
I’m trying to make a custom hook to add Bios Version to the Host Management Page but am running into some issues. If i set any of the existing hooks from ‘public $active = false’ to ‘public $active = true’ all I get is a column that shows a $. So if I was to enable ‘addhostserial.hook.php’ I would get a column that says ‘$serial’ rather than the actual serial number of the computer.
@Tom-Elliott dumb question but where would I find the log file for hooks?
I gave your script a try and it crashes with web UI when set from active=false to active=true.
@Tom-Elliott Awesome, thank you very much! I’ll start playing around with this.
Is there a way to show when a client last communicated (checked in) with the fog server? I’d like to compile a list of all my clients showing their check-in times and see if any clients are no longer communicating.
@george1421 Okay, thank you very much!
@george1421 Sorry for not being clear. I uploaded an image of Ubuntu with the fog install files and .fogsettings already loaded onto it. All a tech needs to do is change the .fogsettings file to match the node they are imaging and then re-run the fog installer with the -y command. currently after imaging they need to nano into the .fogsettings file and manually set the ip address and the hostname for that machine before running the installer. I am trying to get it to where when we image a node it can be auto installed rather than have someone set it up.
I have an image of Ubuntu with the fog files ready to be installed that we use to push out our fog nodes at our different sites. the problem I am having is that every time we deploy a node, we have to manually edit the .fogsettings file to set the new IP Address and the new Hostname. Is there a way to Change the Server IP Address and the Hostname by having it pull them automatically from the current system being setup?
@sebastian-roth Thank you for all your help. I will give it a try.
@sebastian-roth I tried removing the space and just giving it the name of the folder itself. I am still seeing “File or path cannot be reached”.
@sebastian-roth Fog Version is 1.5.9, Ubuntu 20.04.03
Below is what the Log says
[10-19-22 1:17:26 pm] | Image Name: Drivers Latitude3500
[10-19-22 1:17:26 pm] * Not syncing Image between groups
[10-19-22 1:17:26 pm] | Image Name: Drivers Latitude3500
[10-19-22 1:17:26 pm] | File or path cannot be reached.