• Recent
    • Unsolved
    • Tags
    • Popular
    • Users
    • Groups
    • Search
    • Register
    • Login

    [SCRIPTS] Customization of Ubuntu - "Fog Service" for Ubuntu

    Scheduled Pinned Locked Moved
    General
    5
    20
    11.0k
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • ch3iC
      ch3i Moderator @Tom Elliott
      last edited by

      @Tom-Elliott Ok

      1 Reply Last reply Reply Quote 0
      • ch3iC
        ch3i Moderator @Tom Elliott
        last edited by

        @Tom-Elliott said:

        @ch3i the sleep is an attempt to give the client system, booted into windows, a kind of delay so winmgmt has to to start up.

        It’s possible to change sleep(10) with something like that :

        $_REQUEST['delay'] ? sleep($_REQUEST['delay']) : sleep(10);
        

        To specify delay using that :

        <fog-ip>/fog/service/hostname.php?mac=f8:bc:12:6e:67:78&newService=0&delay=3
        
        1 Reply Last reply Reply Quote 0
        • ch3iC
          ch3i Moderator
          last edited by

          Sleep on hostname.php is removed, I’ll try to post a version with hostname.php instead MySQL request.

          Wayne WorkmanW ch3iC 2 Replies Last reply Reply Quote 0
          • Wayne WorkmanW
            Wayne Workman @ch3i
            last edited by

            @ch3i said:

            Sleep on hostname.php is removed, I’ll try to post a version with hostname.php instead MySQL request.

            IMHO, I’d say leave it as a request to MySQL. FOG 2.0 will not use PHP, it’ll use nodeJS and any PHP-based scripts out there will then stop working with FOG 2.0.

            Please help us build the FOG community with everyone involved. It's not just about coding - way more we need people to test things, update documentation and most importantly work on uniting the community of people enjoying and working on FOG!
            Daily Clean Installation Results:
            https://fogtesting.fogproject.us/
            FOG Reporting:
            https://fog-external-reporting-results.fogproject.us/

            ch3iC 1 Reply Last reply Reply Quote 0
            • ch3iC
              ch3i Moderator @Wayne Workman
              last edited by

              @Wayne-Workman said:

              @ch3i said:

              Sleep on hostname.php is removed, I’ll try to post a version with hostname.php instead MySQL request.

              IMHO, I’d say leave it as a request to MySQL. FOG 2.0 will not use PHP, it’ll use nodeJS and any PHP-based scripts out there will then stop working with FOG 2.0.

              I know 😛 But I think in FOG 2.0 we have a linux client 😄 😄

              Wayne WorkmanW 1 Reply Last reply Reply Quote 0
              • Wayne WorkmanW
                Wayne Workman @ch3i
                last edited by

                @ch3i True, true. @Jbob says that the client complies and runs fine on Linux… which is pretty amazing.

                Please help us build the FOG community with everyone involved. It's not just about coding - way more we need people to test things, update documentation and most importantly work on uniting the community of people enjoying and working on FOG!
                Daily Clean Installation Results:
                https://fogtesting.fogproject.us/
                FOG Reporting:
                https://fog-external-reporting-results.fogproject.us/

                1 Reply Last reply Reply Quote 0
                • ch3iC
                  ch3i Moderator
                  last edited by

                  @Jbob said:

                  2.0? At the rate I’m going I’ll have Linux and Mac released for 1.3.0

                  Cool, with 2.0 we have an Android/iOS client ? 😛

                  1 Reply Last reply Reply Quote 1
                  • ch3iC
                    ch3i Moderator
                    last edited by

                    Update host_rename_fog :

                    • Add the “dots” function used in FOG scripts like the installer (more sexy lol)
                    • Checking Mysql status
                    • Update MAC/Hostname checking (a better compatibility with multiple eth cards)

                    To use that script please create a user in mysql database with select right only on tables : hosts and hostMAC !

                    1 Reply Last reply Reply Quote 1
                    • ch3iC
                      ch3i Moderator @ch3i
                      last edited by ch3i

                      @ch3i said:

                      Sleep on hostname.php is removed, I’ll try to post a version with hostname.php instead MySQL request.

                      @Tom-Elliott It seem to be back

                      1 Reply Last reply Reply Quote 0
                      • ch3iC
                        ch3i Moderator
                        last edited by

                        Below the version without using mysql :

                        #!/bin/bash
                        #########################################################
                        # Rename services with FoG, need mysql-client installed
                        #########################################################
                        # ch3i - 09/11/2015
                        #########################################################
                        
                        ### BEGIN INIT INFO
                        # Provides:          rename_host_fog
                        # Required-Start:    $all
                        # Required-Stop:     
                        # Default-Start:     2 3 4 5
                        # Default-Stop:      0 1 6
                        # Short-Description: Rename host at boot-shutdown
                        # Description:       Rename host using FoG
                        ### END INIT INFO
                        
                        #########################################################
                        # Functions
                        #########################################################
                        FUNC_DOTS() {
                            max=65
                            if [ -n "$1" ]; then
                        		n=`expr $max - ${#1}`
                        		echo -n " * ${1:0:max}"
                        		if [ "$n" -gt 0 ]; then
                        			for i in $(seq $n); do
                        				printf %s .
                        			done
                        		fi
                        	fi
                        }
                        
                        #########################################################
                        # Configuration
                        #########################################################
                        FOG_SERVER="ip_of_server"
                        FOG_WEBROOT="fog"
                        
                        #########################################################
                        # Check FOG Server Status
                        #########################################################
                        FUNC_DOTS "Check FOG web service Status"
                        wget "http://$FOG_SERVER/$FOG_WEBROOT/index.php" -t 1 2>/dev/null
                        if [ $? -eq 0 ]
                        then
                        	echo "Done"
                        	
                        	#########################################################
                        	# Get interfaces
                        	#########################################################
                        	NETWORK_CARDS=($(ls /sys/class/net | grep eth))
                        
                        	#########################################################
                        	# Get host name and domain from FoG database
                        	#########################################################
                        	FUNC_DOTS "Checking hostname/domain configurations"
                        	for ETH in ${NETWORK_CARDS[*]}
                        	do
                        			# read mac address
                        			MAC=$(cat /sys/class/net/$ETH/address)
                        			# get mac address information from fog web server
                        			wget http://$FOG_SERVER/$FOG_WEBROOT/service/hostname.php?mac=$MAC -O /tmp/hostname_check 2>/dev/null
                        			HOST_NAME="$(grep 'ok=' /tmp/hostname_check | cut -d "=" -f2)"
                        			HOST_DOMAIN_NAME="$(grep 'ADDom' /tmp/hostname_check | cut -d "=" -f2)"
                        			if [ "$HOST_NAME" != "" ]
                        			then
                        				echo "Done ($HOST_NAME.$HOST_DOMAIN_NAME)"
                        				sleep 3
                        				# A hostname is found - quit the loop
                        				break
                        			else
                        				echo "Error"
                        				FUNC_DOTS "Host not found in FOG database"
                        				echo "exiting"
                        				sleep 3
                        				exit
                        			fi
                        	done
                        
                        	#########################################################
                        	# Check host configuration
                        	#########################################################
                        	ACTUAL_FQDN=$(hostname --fqdn)
                        	if [ "$HOST_NAME.$HOST_DOMAIN_NAME" != "$ACTUAL_FQDN" -a "$HOST_NAME" != "" -a "$HOST_DOMAIN_NAME" != "" ]
                        	then
                        	
                        		#########################################################
                        		# Update hostname file
                        		#########################################################
                        		FUNC_DOTS "Updating /etc/hostname"
                        		echo $HOST_NAME >/etc/hostname
                        		echo "Done"
                        
                        		#########################################################
                        		# Update hosts file
                        		#########################################################
                        		FUNC_DOTS "Updating /etc/hosts"
                        		echo "127.0.0.1       localhost" > /etc/hosts
                        		echo "127.0.1.1       $HOST_NAME.$HOST_DOMAIN_NAME $HOST_NAME " >> /etc/hosts
                        		echo "# 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
                        ff02::3 ip6-allhosts" >> /etc/hosts
                        		echo "Done"
                        		
                        		#########################################################
                        		# Update interfaces file
                        		#########################################################
                        		FUNC_DOTS "Updating /etc/network/interfaces"
                        		echo "# This file describes the network interfaces available on your system
                        # and how to activate them. For more information, see interfaces(5).
                        
                        # The loopback network interface
                        auto lo
                        iface lo inet loopback" > /etc/network/interfaces
                        
                        		for ETH in ${NETWORK_CARDS[*]}
                        		do
                        			if [ "$ETH" != "lo" ]
                        			then
                        			echo "# $ETH Interface
                        allow-hotplug $ETH
                        iface $ETH inet dhcp" >> /etc/network/interfaces
                        			fi
                        		done
                        		echo "Done"
                        
                        		#########################################################
                        		# Clear persistent network cards
                        		#########################################################
                        		FUNC_DOTS "Clearing persistent networks cards"
                        		if [ -f /etc/udev/rules.d/70-persistent-net.rules ]
                        		then
                        			rm /etc/udev/rules.d/70-persistent-net.rules
                        		fi
                        		echo "Done"
                        
                        		#########################################################
                        		# Logs and Reboot machine
                        		#########################################################
                        		FUNC_DOTS "Building rename logs"
                        		echo "$(date) ::: Update successful with Hostname : $HOST_NAME and Domain : $HOST_DOMAIN_NAME" >> /var/log/rename_host_fog.log
                        		echo "Done"
                        		grub-reboot 0
                        		/sbin/init 6
                        		exit		
                        	fi
                        	if [ "$HOST_NAME" == "" -a "$HOST_DOMAIN_NAME" == "" ]
                        	then
                        		echo "$(date) ::: Update failed : Failed to connect to Mysql Server" >> /var/log/rename_host_fog.log
                        	fi
                        	if [ "$HOST_NAME" != "" -a "$HOST_DOMAIN_NAME" == "" ]
                        	then
                        		echo "$(date) ::: Update failed : Domain name is missing" >> /var/log/rename_host_fog.log
                        	fi
                        else
                        	echo "Error"
                        	FUNC_DOTS "Failed to connect to server"
                        	echo "Exiting"
                        	sleep 3
                        	exit
                        fi
                        exit
                        

                        More slow because 10 seconds timeout in hostname.php request.

                        1 Reply Last reply Reply Quote 0
                        • 1 / 1
                        • First post
                          Last post

                        210

                        Online

                        12.1k

                        Users

                        17.3k

                        Topics

                        155.4k

                        Posts
                        Copyright © 2012-2024 FOG Project