problem with hostname.php when i migrate 1.3.4 => 1.3.5.
-
@george1421 said in problem with hostname.php when i migrate 1.3.4 => 1.3.5.:
The hostinfo.php is setup so that postinstall scripts can pick up details about the current deployment. This script outputs the data in a form that can be easily used by a bash shell.
That is why I asked what are you trying to accomplish.
Yes you can not view that data with a browser, that is a security attempt to only allow certain devices (FOS Engine) to access the data. But there is a hack to get around that too.I want get some host information as hostname, adou, for modify the sysprep file in postinstall.
I read to get this information with hostinfo.php, but i don’t understand how to use it. -
@jc35 Can you use
curl
instead? The stuff you’re getting is pure text anyways, not html.curl http://10.0.0.2/fog/service/hostname.php?mac=xx:xx:xx:xx:xx:xx
-
@Wayne-Workman need to add argument
-A ""
-
@jc35 This works fine for me (pictured below). Are you changing the IP address in the command to your own FOG server’s IP?
-
@Wayne-Workman
On my test server on local base is work fine on local base,. When I try to use our base on another server I have same problem, I think the is a problem with our database on other database, i don’t understand why.
Can I do a schema updater ? -
@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.