Roger.postdonload et variable environnement



  • I would like to write a text file in “/ etc” after deploying the ubuntu client with fog.
    I found on the internet a script to rename the pc that works very well
    but I would also like to write the name of the group that serves as a reference for an application per room

    Exemple : https://memo-linux.com/fog-1-2-script-post-installation-pour-modifier-le-nom-dune-machine-linux-clonee/


  • Developer

    @olivier-c said in Roger.postdonload et variable environnement:

    I would like to retrieve the value of the fog group to write in the firefox settings

    You mean the group a host is assigned to I guess!? First, one host can be assigned to several groups so this could be an issue. Second, as far as I know this information is not handed to the client yet and I don’t see why we should do so. Third, you should be able to retrieve the information (group name) via an external API call from the FOG backend. Search the forum on how to use the API.



  • thank you
    i put all in my script
    but some of the environment variable is not there
    I would like to retrieve the value of the fog group to write in the firefox settings

    echo $groupname > /ext/etc/GM_ESU

    gm_esu=$(cat /etc/GM_ESU)

    echo ‘//
    lockPref(“autoadmin.global_config_url”, "file:///tmp/netlogon/icones/’$gm_esu’/linux/firefox.js"); '> /usr/lib/firefox/firefox.cfg

    the purpose of the script is to deploy linux clients in a school by fog without having to go back to the posts to change the client settings
    the name change works the group setting associated with the class room.

    my script

    #!/bin/bash

    ##détection de l’OS, 50 pour les Linux
    if [[ “$osid” == “50” ]];then
    ##création d’un répertoire temporaire
    mkdir /ext
    ##montage temporaire de la partition système du Linux
    mount /dev/sda1 /ext
    ##changement du nom host de la machine définie dans l’interface web
    echo $hostname > /ext/etc/hostname
    echo "127.0.0.1 localhost
    127.0.1.1 $hostname

    The following lines are desirable for IPv6 capable hosts
    ::1 ip6-localhost ip6-loopback
    fe00::0 ip6-localnet
    ff00::0 ip6-mcastprefix
    ff02::1 ip6-allnodes
    ff02::2 ip6-allrouters" > /ext/etc/hosts

    #ecriture du groupe
    echo $ftp > /ext/etc/groupefog
    echo $hostname >> /ext/etc/groupefog
    echo $img >> /ext/etc/groupefog
    echo $mac >> /ext/etc/groupefog
    echo $osid >> /ext/etc/groupefog
    echo $storage >> /ext/etc/groupefog
    echo $storageip >> /ext/etc/groupefog
    echo $web >> /ext/etc/groupefog

    echo autre >> /ext/etc/groupefog
    echo $shutdown >> /ext/etc/groupefog
    echo $hostdesc >> /ext/etc/groupefog
    echo $hostip >> /ext/etc/groupefog
    echo $hostimageid >> /ext/etc/groupefog
    echo $hostbuilding >> /ext/etc/groupefog
    echo $hostusead >> /ext/etc/groupefog
    echo $hostaddomain >> /ext/etc/groupefog
    echo $hostaduser >> /ext/etc/groupefog
    echo $hostadou >> /ext/etc/groupefog
    echo $hostproductkey >> /ext/etc/groupefog
    echo $imagename >> /ext/etc/groupefog
    echo $imagedesc >> /ext/etc/groupefog
    echo $imageosid >> /ext/etc/groupefog
    echo $imagepath >> /ext/etc/groupefog
    echo $primaryuser >> /ext/etc/groupefog
    echo $othertag >> /ext/etc/groupefog
    echo $othertag1 >> /ext/etc/groupefog
    echo $sysman >> /ext/etc/groupefog
    echo $sysproduct >> /ext/etc/groupefog
    echo $sysserial >> /ext/etc/groupefog
    echo $mbman >> /ext/etc/groupefog
    echo $mbserial >> /ext/etc/groupefog
    echo $mbasset >> /ext/etc/groupefog
    echo $mbproductname >> /ext/etc/groupefog
    echo $caseman >> /ext/etc/groupefog
    echo $caseserial >> /ext/etc/groupefog
    echo $caseasset >> /ext/etc/groupefog
    echo $location >> /ext/etc/groupefog

    ##Démontage de la partition système
    umount /ext
    ##Suppression du répertoire temporaire
    rmdir /ext
    fi

    and the résult : grourpefog:

    echo $ftp > /ext/etc/groupefog 172.18.40.3
    echo $hostname >> /ext/etc/groupefog L05-ORD00242
    echo $img >> /ext/etc/groupefog ubuntu1604_ssd128
    echo $mac >> /ext/etc/groupefog 70:4d:7b:2e:0e:e9
    echo $osid >> /ext/etc/groupefog 50
    echo $storage >> /ext/etc/groupefog 172.18.40.3:/images/
    echo $storageip >> /ext/etc/groupefog 172.18.40.3
    echo $web >> /ext/etc/groupefog http://172.18.40.3/fog/

    echo autre autre
    echo $shutdown >> /ext/etc/groupefog
    echo $hostdesc >> /ext/etc/groupefog
    echo $hostip >> /ext/etc/groupefog
    echo $hostimageid >> /ext/etc/groupefog
    echo $hostbuilding >> /ext/etc/groupefog
    echo $hostusead >> /ext/etc/groupefog
    echo $hostaddomain >> /ext/etc/groupefog
    echo $hostaduser >> /ext/etc/groupefog
    echo $hostadou >> /ext/etc/groupefog
    echo $hostproductkey >> /ext/etc/groupefog
    echo $imagename >> /ext/etc/groupefog
    echo $imagedesc >> /ext/etc/groupefog
    echo $imageosid >> /ext/etc/groupefog
    echo $imagepath >> /ext/etc/groupefog
    echo $primaryuser >> /ext/etc/groupefog
    echo $othertag >> /ext/etc/groupefog
    echo $othertag1 >> /ext/etc/groupefog
    echo $sysman >> /ext/etc/groupefog System manufacturer
    echo $sysproduct >> /ext/etc/groupefog System Product Name
    echo $sysserial >> /ext/etc/groupefog System Serial Number
    echo $mbman >> /ext/etc/groupefog ASUSTeK COMPUTER INC.
    echo $mbserial >> /ext/etc/groupefog 161085607908324
    echo $mbasset >> /ext/etc/groupefog Default string
    echo $mbproductname >> /ext/etc/groupefog H110M-A/M.2
    echo $caseman >> /ext/etc/groupefog Default string
    echo $caseserial >> /ext/etc/groupefog Default string
    echo $caseasset >> /ext/etc/groupefog
    echo $location >> /ext/etc/groupefog


  • Moderator

    @olivier-c
    Change this file on your server: /images/postdownloadscripts/fog.postdownload to read as:

    #!/bin/bash
    ## This file serves as a starting point to call your custom postimaging scripts.
    ## <SCRIPTNAME> should be changed to the script you're planning to use.
    ## Syntax of post download scripts are
    #. ${postdownpath}<SCRIPTNAME>
    . ${postdownpath}/write_etc_file.sh
    

    Then you could create this script: /images/postdownloadscripts/write_etc_file.sh and mark it as executable.
    Then fill it with whatever echo statements and logic you want:

    #!/bin/bash
    file='/etc/some/blah.conf'
    echo "some config" > $file
    echo "some more config" >> $file
    

    For that above script to work, you will need to mount the disk that you just imaged to some directory at the start of that script, and then execute those commands using the new mounted directory. So this implies you know some things about the hosts, such as if they are using /dev/sda or /dev/sda1 or /dev/sdb2 or whatever.

    As far as the names and functions and such, thanks to @george1421 we have a great description of them here (that I’ve added a little to also):

    #The below are from sourcing the funcs.sh script.
    # ftp		# IP Address from Storage Management-General
    # hostname	# Host Name from Host Managment-General
    # img		# Image Name from Image Management-General
    # mac		# Primary MAC from Image Management-General
    # osid		# Host Image Index number from Image Management-General
    # storage		# IP Address + Image Path from Storage Management-General
    # storageip	# IP Address from Storage Management-General
    # web		#IP Address + Web root from Storage Management-General
    
    #The below are from querying the fog server.
    # shutdown		# Shut down at the end of imaging
    # hostdesc		#Host Description from Host Managment-General
    # hostip		# IP address of the FOS client
    # hostimageid		# ID of image being deployed
    # hostbuilding		# Left over from very old versions of fog, not used anymore.
    # hostusead		# Join Domain after image task from Host Management-Active Directory
    # hostaddomain		# Domain name from Host Management-Active Directory
    # hostaduser		# Domain Username from Host Management-Active Directory
    # hostadou		# Organizational Unit from Host Management-Active Directory
    # hostproductkey=	# Host Product Key from Host Management-Active Directory
    # imagename		# Image Name from Image Management-General
    # imagedesc		# Image Description from Image Management-General
    # imageosid		# Operating System from Image Management-General
    # imagepath		# Image Path from Image Management-General (/images/ assumed)
    # primaryuser		# Primary User from Host Management-Inventory
    # othertag		# Other Tag #1 User from Host Management-Inventory
    # othertag1		# Other Tag #2 from Host Management-Inventory
    # sysman		# System Manufacturer from Host Management-Inventory (from SMBIOS)
    # sysproduct		# System Product from Host Management-Inventory (from SMBIOS)
    # sysserial		# System Serial Number from Host Management-Inventory (from SMBIOS)
    # mbman			# Motherboard Manufacturer from Host Management-Inventory (from SMBIOS)
    # mbserial		# Motherboard Serial Number from Host Management-Inventory (from SMBIOS)
    # mbasset		# Motherboard Asset Tag from Host Management-Inventory (from SMBIOS)
    # mbproductname		# Motherboard Product Name from Host Management-Inventory (from SMBIOS)
    # caseman		# Chassis Manufacturer from Host Management-Inventory (from SMBIOS)
    # caseserial		# Chassis Serial from Host Management-Inventory (from SMBIOS)
    # caseasset		# Chassis Asset from Host Management-Inventory (from SMBIOS)
    # location		# Host Location (name) from Host Management-General
    

    You can find a full tutorial written on FOG postdownload scripts here:
    https://forums.fogproject.org/topic/7740/the-magical-mystical-fog-post-download-script

    This stuff is also completely valid for fog postinitscripts too, which are scripts that run just before FOS begins the imaging process (typically only used for data destruction or backup).



  • I want to write text files with
    Écho $groupename > /ext/etc/Groupon
    On the client fog
    But what the environ variable ?


  • Moderator

    You need to use a post install script to do “stuff” after imaging is complete and before the first boot of the target OS.

    As for changing the system name, you can do it in the post install script or if you use the fog client on the *nix box then the fog client will do that for you too.


Log in to reply
 

398
Online

39.3k
Users

11.0k
Topics

104.4k
Posts

Looks like your connection to FOG Project was lost, please wait while we try to reconnect.