problem with hostname.php when i migrate 1.3.4 => 1.3.5.
-
@jc35 Now that I’m aware of what you are trying to do, then this post will give you the background: https://forums.fogproject.org/topic/6463/expose-fog-host-and-image-properties-to-post-install-scripts/10
In your fog post install script you need to add this code
. /usr/share/fog/lib/funcs.sh; wget -q -U '' -O /tmp/hinfo.txt "http://<fog_server_IP>/fog/service/hostinfo.php?mac=$mac" . /tmp/hinfo.txt rm -f /tmp/hinfo.txt
Once you stat the hinfo.txt file (
. /tmp/hinfo.txt
) the following variables will be added to your postinstall bash shell.$hostname == name of the host (should overwrite existing $hostname) $hostdesc == Description of host $imageosid == Operating System ID (should be the same as $osid) $imagepath == The root path of the image(should also be the image name) $hostusead == 1 or 0 to add host to AD $hostaddomain == host domain name $hostadou == host target ou $hostproductkey == host product key $primaryuser == Value from Primary User field $othertag == Value from OtherTag field $othertag1 == Value from OtherTag1 field $location == Location Name from location plugin $sysman == System Manufacturer from smbios $sysproduct == System Product Name from smbios (from full registration) $sysserial == System Serial Number from smbios (from full registration) $mbman == Motherboard Manufacturer from smbios (from full registration) $mbserial == Motherboard Serial Number from smbios (from full registration) $mbasset == Motherboard Asset tag from smbios (from full registration) $mbproductname == Motherboard Product Name from smbios (from full registration) $caseman == Case Manufacturer from smbios (from full registration) $caseserial == Case Serial Number from smbios (from full registration) $caseasset == Case Asset tag from smbios (from full registration)
From there once you have these bash variables you can use them in your post install script. This document shows you what could be done with a post install script: https://forums.fogproject.org/topic/7740/the-magical-mystical-fog-post-download-script
more precisely you can use the variables with sed to replace settings in your unattend.xml file. Such as changing the computer name to what was collected from the hostinfo.php page.
sed -i -e "s#<ComputerName>\([^<][^<]*\)</ComputerName>#<ComputerName>$hostname</ComputerName>#gi" $unatendfile
-
@george1421 said in problem with hostname.php when i migrate 1.3.4 => 1.3.5.:
@jc35 Now that I’m aware of what you are trying to do, then this post will give you the background: https://forums.fogproject.org/topic/6463/expose-fog-host-and-image-properties-to-post-install-scripts/10
In your fog post install script you need to add this code
. /usr/share/fog/lib/funcs.sh; wget -q -U '' -O /tmp/hinfo.txt "http://<fog_server_IP>/fog/service/hostinfo.php?mac=$mac" . /tmp/hinfo.txt rm -f /tmp/hinfo.txt
Once you stat the hinfo.txt file (
. /tmp/hinfo.txt
) the following variables will be added to your postinstall bash shell.$hostname == name of the host (should overwrite existing $hostname) $hostdesc == Description of host $imageosid == Operating System ID (should be the same as $osid) $imagepath == The root path of the image(should also be the image name) $hostusead == 1 or 0 to add host to AD $hostaddomain == host domain name $hostadou == host target ou $hostproductkey == host product key $primaryuser == Value from Primary User field $othertag == Value from OtherTag field $othertag1 == Value from OtherTag1 field $location == Location Name from location plugin $sysman == System Manufacturer from smbios $sysproduct == System Product Name from smbios (from full registration) $sysserial == System Serial Number from smbios (from full registration) $mbman == Motherboard Manufacturer from smbios (from full registration) $mbserial == Motherboard Serial Number from smbios (from full registration) $mbasset == Motherboard Asset tag from smbios (from full registration) $mbproductname == Motherboard Product Name from smbios (from full registration) $caseman == Case Manufacturer from smbios (from full registration) $caseserial == Case Serial Number from smbios (from full registration) $caseasset == Case Asset tag from smbios (from full registration)
From there once you have these bash variables you can use them in your post install script. This document shows you what could be done with a post install script: https://forums.fogproject.org/topic/7740/the-magical-mystical-fog-post-download-script
more precisely you can use the variables with sed to replace settings in your unattend.xml file. Such as changing the computer name to what was collected from the hostinfo.php page.
sed -i -e "s#<ComputerName>\([^<][^<]*\)</ComputerName>#<ComputerName>$hostname</ComputerName>#gi" $unatendfile
I have try this, it doesn’t work.
I think the problem is database.
We return to 1.3.4.
Thanks you very much for your answer, we try to go to 1.3.5 later. -
@jc35 This function is also in 1.3.x, not specific to 1.3.5.
-
@george1421 I sent you a DM (look at the little talk bubble at the top of the fog tool tray). It explains what has to be done.
-
@george1421
We have return to 1.3.4 and it’s works. We try to duplicate database and with the dev server we try to connect with 1.3.5 to connect to find what’s th problem with database and fog 1.3.5.
our dev server is on 1.3.5sorry for very bad english.
Thanks for your answer. -
@george1421
Okay, I’ll look at that. -
I really believe you just need to change the
wget
command to read as:
hostinfo=$(wget -U '' -qO --post-data="mac=$mac" - "http://${web}service/hostname.php 2>/dev/null)
You could also try:
hostinfo=$(curl -A '' -fkq --data "mac=$mac" "http://${web}service/hostname.php" 2>/dev/null)
-
@Tom-Elliott Hello, I try this, with 1.4.0-RC3, I have the same problem, I think we have a problem with database, but I don’t know how to find this problem.
-
@jc35 I’m running 1.4.0-RC3 on my dev system and when I key in
http://<fog_server_ip>/fog/service/hostname.php?mac=b8ca3ace1d1a
I get:#!ok=b8ca3ace1d1a #AD= #ADDom= #ADOU= #ADUser= #ADPass=
(in my case the host name is the same as the mac address by intent)
The same for wget from my mint laptop
wget -q -O - "http://192.168.112.24/fog/service/hostname.php?mac=b8ca3ace1d1a" #!ok=b8ca3ace1d1a #AD= #ADDom= #ADOU= #ADUser= #ADPass=
I wonder if the variable
${web}
points to something other that what you think. -
@george1421 It’s work with the database is local, but it doesn’t work with the database is on another server.
-
@jc35 How (precisely) do you have fog setup? All fog master fog servers (not storage nodes) have local databases.
-
@george1421 I install fog with a local database, after I change the config.class.php for use with a database on another server.
-
@jc35 So the problem is likely authentication with the other database?
-
@jc35 said in problem with hostname.php when i migrate 1.3.4 => 1.3.5.:
I change the config.class.php for use with a database on another server.
Understand I have to be that guy and also know I’m talking as a Moderator and not part of the core FOG Project team.
You are running in an unsupported configuration. I (personally) don’t understand how/why fog is current able to function with this setup. Yes I know it can be done, but the question is should it be done, we have not tested this setup so there is no guaranty it will work with future releases.
-
@Tom-Elliott I don’t know, I have just the message “#!ng” since 1.3.5.
The web web interface it work fine. -
@Tom-Elliott said in problem with hostname.php when i migrate 1.3.4 => 1.3.5.:
@jc35 So the problem is likely authentication with the other database?
the authentication is it different that web interface ?
-
#!ng = Not enabled globally.
Is the value enabled in Services->Hostname Changer?
-
@Tom-Elliott said in problem with hostname.php when i migrate 1.3.4 => 1.3.5.:
#!ng = Not enabled globally.
Is the value enabled in Services->Hostname Changer?
Hello,
thank you very much.
It’s work fine.what is better wget or curl ?
what is better hostname.php or hostinfo.php ?
-
@jc35 said in problem with hostname.php when i migrate 1.3.4 => 1.3.5.:
what is better hostname.php or hostinfo.php ?
It depends on what data you need? If you just need AD info then hostname.php is the answer, if you need to know more about the image and host then hostinfo.php is the answer. Just understand the output of both are intended for different purposes. So you will have to parse the data differently for each page.
-
@jc35 For
wget
orcurl
either or, matter of preference really.I’d recommend
hostinfo.php
though it would mean sourcing the returned data to have access to the variable. That said, i already pass the hostname in with the kernel args, so I think you can simply do a lookup with:echo $hostname