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

Custom Full Host Registration for 1.3.4

Scheduled Pinned Locked Moved Solved
FOG Problems
3
53
26.2k
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.
  • G
    george1421 Moderator @JGallo
    last edited by Mar 28, 2017, 5:33 PM

    @JGallo it may be in the funcs.sh (or what ever the name is) script too, if its not in /bin/fog directly.

    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!

    1 Reply Last reply Reply Quote 0
    • G
      george1421 Moderator @JGallo
      last edited by george1421 Mar 29, 2017, 5:15 PM Mar 29, 2017, 11:14 PM

      @JGallo I just had a chance to debug the postinit scripts and they do run as advertised.

      I setup a debug capture.
      In the /images/dev/postinitscripts/fog.postinit on the FOG server, I just added a single line.

      dots "Testing postinit scripts"
      

      Then from the debug capture console on FOS, I entered fog
      on FOS I got

      Running post init scripts......
      Testing postinit scripts...
      Done...
      

      So that is telling me the master postinit script is being called by the fog startup scripts.

      In your post init scripts don’t forget if you have to reference your script path using the fog defined variable ${postinitpath}
      Such as:

      . ${postinitpath}fog.postinit
      

      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!

      J 1 Reply Last reply Mar 30, 2017, 3:32 PM Reply Quote 0
      • J
        JGallo @george1421
        last edited by Mar 30, 2017, 3:32 PM

        @george1421 So what I need to figure out is why my fog.postinit script is not working. There is literally nothing in the postinit script other than the comments of what to change and basically the following:

        . ${postinitpath}fog.postselect

        I went ahead and tested a dots “Testing postinit scripts” and still the post init scripts are being skipped.

        I get the following everytime:

        *Running post init scripts…Skipped
        *Press [Enter] key to continue

        I do have the debug flags. So something is causing my postinitscript to be skipped. LOL

        G 1 Reply Last reply Mar 30, 2017, 3:40 PM Reply Quote 0
        • G
          george1421 Moderator @JGallo
          last edited by george1421 Mar 30, 2017, 9:44 AM Mar 30, 2017, 3:40 PM

          @JGallo So yours is saying skipped. In my case It ran.

          If you are running this from a putty shell (I guess even the console for that matter) Press Ctrl-C to break out of the script. At this point we need to understand why it skipped. There is a check in the first few lines of the /bin/fog script that tests the existence of a file/path (stating from memory) and if that doesn’t exist it will print skipped and continue on. That I think is your case. We need to understand why that conditional is causing the postinit to skip.

          I need to unpack the inits a work here to look at the code agian.

          unpack not needed. Ref: https://github.com/FOGProject/fogproject/blob/master/src/buildroot/package/fog/scripts/bin/fog

          recommendation, when you exit out after the skipped part. key in
          df -h
          and
          echo ${storage}

          and post the results. It looks like your mount may be failing.

          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!

          J 1 Reply Last reply Mar 30, 2017, 9:13 PM Reply Quote 0
          • T
            Tom Elliott
            last edited by Mar 30, 2017, 4:23 PM

            Mind trying this patch out? @george1421 Your method worked because you were in an “init” “imaging” needed tasking, but I think the problem is storage information was never passed for registration type tasks.

            I’ve fixed this in the working group.

            @jgallo please try:
            wget -O /var/www/fog/lib/fog/bootmenu.class.php https://raw.githubusercontent.com/FOGProject/fogproject/3adec9a54254a9d466e129417f16163f396c358a/packages/web/lib/fog/bootmenu.class.php

            This should replace your bootmenu with one that will insert the storage information based on the “web” interface it’s passing through.

            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! Get in contact with me (chat bubble in the top right corner) if you want to join in.

            Web GUI issue? Please check apache error (debian/ubuntu: /var/log/apache2/error.log, centos/fedora/rhel: /var/log/httpd/error_log) and php-fpm log (/var/log/php*-fpm.log)

            Please support FOG if you like it: https://wiki.fogproject.org/wiki/index.php/Support_FOG

            G J 2 Replies Last reply Mar 30, 2017, 4:25 PM Reply Quote 0
            • G
              george1421 Moderator @Tom Elliott
              last edited by Mar 30, 2017, 4:25 PM

              @Tom-Elliott said in Custom Full Host Registration for 1.3.4:

              Your method worked because you were in an “init” “imaging” needed tasking,

              True when I was debugging last night I was doing an debug capture. So of course it would have that variable set. Thanks for catching that one!

              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!

              1 Reply Last reply Reply Quote 0
              • J
                JGallo @george1421
                last edited by Mar 30, 2017, 9:13 PM

                @george1421 After I type in:

                df -h

                I get:

                Filesystem
                /dev/root

                along with size, space used, etc. I assume this part must be in debug mode correct? I see Tom recommended something so I will give that a try as well.

                1 Reply Last reply Reply Quote 0
                • J
                  JGallo @Tom Elliott
                  last edited by Apr 3, 2017, 2:31 PM

                  @Tom-Elliott So I got a chance to try the bootmenu link you posted and I get a chainlink error and could not boot: input/output error followed by the ipxe.org link. This is fixed by re-running the fog installer and then the ipxe booted normally. Not sure if I did that correctly but all I did was run that wget and it seemed like it downloaded the bootmenu.class.php.

                  G 1 Reply Last reply Apr 3, 2017, 3:08 PM Reply Quote 0
                  • G
                    george1421 Moderator @JGallo
                    last edited by Apr 3, 2017, 3:08 PM

                    @JGallo said in Custom Full Host Registration for 1.3.4:

                    I get a chainlink error and could not boot: input/output error followed by the ipxe.org link

                    What we need there is to capture this chainlink error. With that patched file installed call the following url from a browser and post the results here. http://<fog_server_ip>/fog/service/ipxe/boot.php?mac=00:00:00:00:00:00` That will provide us with the text that is used to create the iPXE boot menu.

                    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!

                    J 1 Reply Last reply Apr 3, 2017, 3:13 PM Reply Quote 0
                    • J
                      JGallo @george1421
                      last edited by Apr 3, 2017, 3:13 PM

                      @george1421
                      #!ipxe
                      set fog-ip 10.170.200.20
                      set fog-webroot fog
                      set boot-url http://${fog-ip}/${fog-webroot}
                      cpuid --ext 29 && set arch x86_64 || set arch i386
                      iseq ${platform} efi && set key 0x1b || set key 0x1b
                      iseq ${platform} efi && set keyName ESC || set keyName Escape
                      prompt --key ${key} --timeout 3000 Booting… (Press ${keyName} to access the menu) && goto menuAccess || sanboot --no-describe --drive 0x80
                      :menuAccess
                      login
                      params
                      param mac0 ${net0/mac}
                      param arch ${arch}
                      param platform ${platform}
                      param username ${username}
                      param password ${password}
                      param menuaccess 1
                      param debug 1
                      isset ${net1/mac} && param mac1 ${net1/mac} || goto bootme
                      isset ${net2/mac} && param mac2 ${net2/mac} || goto bootme
                      :bootme
                      chain -ar http://10.170.200.20/fog/service/ipxe/boot.php##params

                      G 1 Reply Last reply Apr 3, 2017, 3:16 PM Reply Quote 0
                      • G
                        george1421 Moderator @JGallo
                        last edited by george1421 Apr 3, 2017, 9:18 AM Apr 3, 2017, 3:16 PM

                        @JGallo And this what you get when you call the boot.php file with the mac address I gave you?

                        If so can you tail the apache error log and see if php is throwing an error. This IS an incomplete iPXE menu, which means that something is wrong with that patched file.

                        The head of a valid ipxe menu should look like this:

                        #!ipxe
                        set fog-ip 192.168.1.53
                        set fog-webroot fog
                        set boot-url http://${fog-ip}/${fog-webroot}
                        cpuid --ext 29 && set arch x86_64 || set arch i386
                        goto get_console
                        :console_set
                        colour --rgb 0x00567a 1 ||
                        colour --rgb 0x00567a 2 ||
                        colour --rgb 0x00567a 4 ||
                        cpair --foreground 7 --background 2 2 ||
                        goto MENU
                        :alt_console
                        cpair --background 0 1 ||
                        cpair --background 1 2 ||
                        goto MENU
                        :get_console
                        console --picture http://192.168.1.53/fog/service/ipxe/bg.png --left 100 --right 80 && goto console_set || goto alt_console
                        :MENU
                        menu
                        colour --rgb 0x00567a 0 ||
                        cpair --foreground 1 1 ||
                        cpair --foreground 0 3 ||
                        cpair --foreground 4 4 ||
                        item --gap Host is unregistered
                        item --gap -- -------------------------------------
                        item fog.local Boot from hard disk
                        item fog.memtest Run Memtest86+
                        item fog.keyreg Update Product Key
                        item fog.deployimage Deploy Image
                        item fog.multijoin Join Multicast Session
                        item fog.quickdel Quick Host Deletion
                        item fog.sysinfo Client System Information (Compatibility)
                        

                        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!

                        J 1 Reply Last reply Apr 3, 2017, 3:29 PM Reply Quote 0
                        • J
                          JGallo @george1421
                          last edited by Apr 3, 2017, 3:29 PM

                          @george1421 That is what I get. I will try to tail the apache logs and see if anything I can get there. If I restore the the original boot.php file, should expect different results when calling the boot.php file with the mac address: 00:00:00:00:00:00?

                          G 1 Reply Last reply Apr 3, 2017, 3:31 PM Reply Quote 0
                          • G
                            george1421 Moderator @JGallo
                            last edited by Apr 3, 2017, 3:31 PM

                            @JGallo I would expect your results to be similar to my (unpatched) results. You could always try mac address 00:00:00:00:00:01 if for some reason you have mac address 00:00:00:00:00:00 registered. The key is to pick a mac address that should not exist in your FOG server.

                            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!

                            J 1 Reply Last reply Apr 3, 2017, 4:52 PM Reply Quote 0
                            • J
                              JGallo @george1421
                              last edited by george1421 Apr 3, 2017, 10:52 AM Apr 3, 2017, 4:52 PM

                              @george1421 Here is what I got from the Apache2 error logs:

                              Mon Apr 03 07:35:02.274680 2017] [mpm_prefork:notice] [pid 29017] AH00163: Apache/2.4.25 (Ubuntu) OpenSSL/1.0.2k configured – resuming normal operations
                              [Mon Apr 03 07:35:02.274758 2017] [core:notice] [pid 29017] AH00094: Command line: ‘/usr/sbin/apache2’
                              [Mon Apr 03 07:53:37.005326 2017] [php7:error] [pid 32151] [client 10.170.75.39:54182] PHP Fatal error: Uncaught Error: Call to undefined method BootMenu::attemptLogin() in /var/www/fog/lib/fog/bootmenu.class.php:1168\nStack trace:\n#0 /var/www/fog/lib/fog/bootmenu.class.php(398): BootMenu->verifyCreds()\n#1 /var/www/fog/service/ipxe/boot.php(35): BootMenu->__construct(Object(Host))\n#2 {main}\n thrown in /var/www/fog/lib/fog/bootmenu.class.php on line 1168
                              [Mon Apr 03 08:04:43.824595 2017] [php7:error] [pid 32177] [client 10.170.75.145:9807] PHP Fatal error: Uncaught Error: Call to undefined method BootMenu::attemptLogin() in /var/www/fog/lib/fog/bootmenu.class.php:1168\nStack trace:\n#0 /var/www/fog/lib/fog/bootmenu.class.php(398): BootMenu->verifyCreds()\n#1 /var/www/fog/service/ipxe/boot.php(35): BootMenu->__construct(Object(Host))\n#2 {main}\n thrown in /var/www/fog/lib/fog/bootmenu.class.php on line 1168
                              [Mon Apr 03 08:05:16.450267 2017] [php7:error] [pid 32148] [client 10.170.75.145:49460] PHP Fatal error: Uncaught Error: Call to undefined method BootMenu::attemptLogin() in /var/www/fog/lib/fog/bootmenu.class.php:1168\nStack trace:\n#0 /var/www/fog/lib/fog/bootmenu.class.php(398): BootMenu->verifyCreds()\n#1 /var/www/fog/service/ipxe/boot.php(35): BootMenu->__construct(Object(Host))\n#2 {main}\n thrown in /var/www/fog/lib/fog/bootmenu.class.php on line 1168
                              [Mon Apr 03 08:07:51.285042 2017] [php7:error] [pid 32147] [client 10.170.75.39:22602] PHP Fatal error: Uncaught Error: Call to undefined method BootMenu::attemptLogin() in /var/www/fog/lib/fog/bootmenu.class.php:1168\nStack trace:\n#0 /var/www/fog/lib/fog/bootmenu.class.php(398): BootMenu->verifyCreds()\n#1 /var/www/fog/service/ipxe/boot.php(35): BootMenu->__construct(Object(Host))\n#2 {main}\n thrown in /var/www/fog/lib/fog/bootmenu.class.php on line 1168
                              [Mon Apr 03 08:08:12.152556 2017] [mpm_prefork:notice] [pid 29017] AH00169: caught SIGTERM, shutting down
                              [Mon Apr 03 08:08:24.966309 2017] [mpm_prefork:notice] [pid 1000] AH00163: Apache/2.4.25 (Ubuntu) OpenSSL/1.0.2k configured – resuming normal operations
                              [Mon Apr 03 08:08:24.966502 2017] [core:notice] [pid 1000] AH00094: Command line: ‘/usr/sbin/apache2’
                              [Mon Apr 03 08:09:45.609312 2017] [php7:error] [pid 1021] [client 10.170.75.39:5052] PHP Fatal error: Uncaught Error: Call to undefined method BootMenu::attemptLogin() in /var/www/fog/lib/fog/bootmenu.class.php:1168\nStack trace:\n#0 /var/www/fog/lib/fog/bootmenu.class.php(398): BootMenu->verifyCreds()\n#1 /var/www/fog/service/ipxe/boot.php(35): BootMenu->__construct(Object(Host))\n#2 {main}\n thrown in /var/www/fog/lib/fog/bootmenu.class.php on line 1168
                              [Mon Apr 03 08:25:26.514047 2017] [php7:error] [pid 2705] [client 10.170.75.159:18805] PHP Fatal error: Uncaught Error: Call to undefined method BootMenu::attemptLogin() in /var/www/fog/lib/fog/bootmenu.class.php:1168\nStack trace:\n#0 /var/www/fog/lib/fog/bootmenu.class.php(398): BootMenu->verifyCreds()\n#1 /var/www/fog/service/ipxe/boot.php(35): BootMenu->__construct(Object(Host))\n#2 {main}\n thrown in /var/www/fog/lib/fog/bootmenu.class.php on line 1168
                              [Mon Apr 03 08:31:42.110324 2017] [mpm_prefork:notice] [pid 1000] AH00169: caught SIGTERM, shutting down
                              [Mon Apr 03 08:31:54.914304 2017] [mpm_prefork:notice] [pid 1032] AH00163: Apache/2.4.25 (Ubuntu) OpenSSL/1.0.2k configured – resuming normal operations
                              [Mon Apr 03 08:31:54.914503 2017] [core:notice] [pid 1032] AH00094: Command line: ‘/usr/sbin/apache2’
                              
                              G 1 Reply Last reply Apr 3, 2017, 4:55 PM Reply Quote 0
                              • G
                                george1421 Moderator @JGallo
                                last edited by george1421 Apr 3, 2017, 10:56 AM Apr 3, 2017, 4:55 PM

                                @JGallo It looks like line 1168 is causing the error in the patched boot menu file.

                                From DM: The OP is also using the ldap plugin too. Only worth mentioning since the error being thrown is referencing attemptLogin().

                                [editor note] I fixed the previous thread to include the error log in a code block for easier review[end note]

                                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!

                                1 Reply Last reply Reply Quote 0
                                • T
                                  Tom Elliott
                                  last edited by Apr 3, 2017, 4:58 PM

                                  I’m sorry, you’ll need to install the working branch then. I’ve moved attemptLogin to fogbase now and it appears the changes I suggested, I overlooked that change sorry.

                                  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! Get in contact with me (chat bubble in the top right corner) if you want to join in.

                                  Web GUI issue? Please check apache error (debian/ubuntu: /var/log/apache2/error.log, centos/fedora/rhel: /var/log/httpd/error_log) and php-fpm log (/var/log/php*-fpm.log)

                                  Please support FOG if you like it: https://wiki.fogproject.org/wiki/index.php/Support_FOG

                                  1 Reply Last reply Reply Quote 0
                                  • T
                                    Tom Elliott
                                    last edited by Apr 3, 2017, 5:32 PM

                                    So I pushed up RC-2 for 1.4.0 in a semi-official manner rather than have you jump directly on working branch.

                                    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! Get in contact with me (chat bubble in the top right corner) if you want to join in.

                                    Web GUI issue? Please check apache error (debian/ubuntu: /var/log/apache2/error.log, centos/fedora/rhel: /var/log/httpd/error_log) and php-fpm log (/var/log/php*-fpm.log)

                                    Please support FOG if you like it: https://wiki.fogproject.org/wiki/index.php/Support_FOG

                                    J 1 Reply Last reply Apr 3, 2017, 6:00 PM Reply Quote 0
                                    • J
                                      JGallo @Tom Elliott
                                      last edited by Apr 3, 2017, 6:00 PM

                                      @Tom-Elliott Thank you. I went ahead and updated to 1.4.0-rc-2 and it seems like like post init scripts are running because I get a message that says Patching registration files and eventually states that it’s Done Patching Registration files. Unfortunately it’s not copying the file I have set up to copy. So we know that the post init scripts are running. Not sure if the copy script is working because when testing a host by trying to do a full register of a host I still get asked questions I removed from my custom fog.man.reg

                                      1 Reply Last reply Reply Quote 0
                                      • J
                                        JGallo
                                        last edited by Tom Elliott Apr 3, 2017, 3:40 PM Apr 3, 2017, 6:06 PM

                                        @Tom-Elliott @george1421 This is what I have as far as post init scripts:

                                        code for fog.postinit

                                        #!/bin/bash
                                        ## This file serves as a starting point to call your custom pre-imaging/post init loading scripts.
                                        ## <SCRIPTNAME> should be changed to the script you're planning to use.
                                        ## Syntax of post init scripts are
                                        . ${postinitpath}fog.postselect
                                        

                                        code for fog.postselect

                                        #!/bin/bash
                                        . /usr/share/fog/lib/funcs.sh
                                        # place script commands here that should execute every time for every FOS action
                                        # I added some additional check here just in case you wanted to highly customize the postinit script's actions. This section is not mandatory.
                                        if [[ -n $mode && $mode != +(*debug*) && -z $type ]]; then
                                            case $mode in
                                                wipe)
                                                    # fog wipe disk
                                                    ;;
                                                checkdisk)
                                                    # fog check disk
                                                    ;;
                                                badblocks)
                                                    # fog disk surface test
                                                    ;;
                                                autoreg)
                                                    # fog quick registration
                                                    ;;
                                                manreg)
                                                    # fog full registration
                                                    . ${postinitpath}patch.fullreg
                                                    ;;
                                                inventory)
                                                    # fog full inventory
                                                    ;;
                                                quickimage)
                                                    # fog quick image
                                                    ;;
                                                *)
                                                    # all other generic operations
                                                    ;;
                                            esac
                                            # place script commands here that should be run for any of the utility functions
                                        else
                                            case $type in
                                                down)
                                                    # fog image deploy
                                                    ;;
                                                up)
                                                    # fog image capture
                                                    ;;
                                                *)
                                                    # the code should never get here, we'll just add so the script doesn't break
                                                    ;;
                                            esac
                                            # place script commands here that should be run for either image capture or deploy
                                        fi
                                        

                                        code for patch.fullreg

                                        #!/bin/bash
                                        
                                        dots "Patching Registration files"
                                        debugPause
                                        
                                        cp -f ${postinitpath}fog.reg.man.fix /bin/fog.reg.man
                                        
                                        dots "Done Patching Registration files"
                                        debugPause
                                        

                                        and finally the custom code I modified that removed questions we don’t need to be asked during full host registration

                                        #!/bin/bash
                                        . /usr/share/fog/lib/funcs.sh
                                        . /bin/fog.donate
                                        clearScreen
                                        displayBanner
                                        disks=""
                                        disk=""
                                        hd=""
                                        getHardDisk
                                        sysman=""
                                        sysman64=""
                                        sysproduct=""
                                        sysproduct64=""
                                        sysversion=""
                                        sysversion64=""
                                        sysserial=""
                                        systype=""
                                        biosversion=""
                                        biosvendor=""
                                        biosdate=""
                                        mbman=""
                                        mbproductname=""
                                        mbversion=""
                                        mbserial=""
                                        mbasset=""
                                        cpuman=""
                                        cpuversion=""
                                        cpucurrent=""
                                        cpumax=""
                                        mem=""
                                        hdinfo=""
                                        caseman=""
                                        casever=""
                                        caseserial=""
                                        casesasset=""
                                        sysserial64=""
                                        systype64=""
                                        biosversion64=""
                                        biosvendor64=""
                                        biosdate64=""
                                        mbman64=""
                                        mbproductname64=""
                                        mbversion64=""
                                        mbserial64=""
                                        mbasset64=""
                                        cpuman64=""
                                        cpuversion64=""
                                        cpucurrent64=""
                                        cpumax64=""
                                        mem64=""
                                        hdinfo64=""
                                        caseman64=""
                                        casever64=""
                                        caseserial64=""
                                        casesasset64=""
                                        dots "Using disk device"
                                        echo $hd
                                        echo " * Starting host registration"
                                        mac=$(getMACAddresses | base64)
                                        exists=$(curl -ks --data "mac=$mac" http://${web}service/man.hostexists.php 2>/dev/null)
                                        checkAndSet() {
                                            local testvar="$1"
                                            local onlynum="$2"
                                            [[ -z $testvar ]] && return
                                            if [[ $onlynum =~ [Tt][Rr][Uu][Ee] && $testvar =~ ^[0-9]+$ ]]; then
                                                echo $testvar | base64
                                            elif [[ $testvar =~ ^[0-9,]+$ ]]; then
                                                echo $testvar | base64
                                            else
                                                return
                                            fi
                                        }
                                        setIDs() {
                                            local varVar="$1"
                                            local str="$2"
                                            local csvstyle="$3"
                                            local dummy="$4"
                                            local max="$5"
                                            local res=""
                                            local url=""
                                            local oIFS=$IFS
                                            local line=""
                                            while [[ -z ${!varVar} ]]; do
                                                [[ $csvstyle =~ [Tt][Rr][Uu][Ee] ]] && echo -n "    Enter the $str IDs separated with , to associate with computer (? for listing): " || echo -n "    Enter the $str ID to associate with computer (? for listing): "
                                                read dummy
                                                dummy=$(echo $dummy | sed -e 's/^,//' -e 's/,$//')
                                                case $dummy in
                                                    [?])
                                                        url="http://${web}service/${str}listing.php"
                                                        clearScreen
                                                        res=$(echo -e $(curl -ks $url 2>/dev/null))
                                                        i=0
                                                        IFS=$'\n'
                                                        for line in $res; do
                                                            let i+=1
                                                            echo $line
                                                            if [[ $i -eq $max ]]; then
                                                                [[ $csvstyle =~ [Tt][Rr][Uu][Ee] ]] && echo -n "    Press [Enter] to proceed or enter the $str IDs separated with , to associate with computer: " || echo -n "    Press [Enter] to proceed or enter the $str ID to associate with computer: "
                                                                read dummy
                                                                case $dummy in
                                                                    [?]|"")
                                                                        i=0
                                                                        clearScreen
                                                                        continue
                                                                        ;;
                                                                esac
                                                                case $csvstyle in
                                                                    [Tt][Rr][Uu][Ee])
                                                                        [[ $dummy =~ ^[0-9,]+$ ]] && printf -v "$varVar" $(checkAndSet $dummy) || setIDs "$varVar" "$str" "$csvstyle" "$dummy" "$max"
                                                                        break
                                                                        ;;
                                                                    *)
                                                                        [[ $dummy =~ ^[0-9]+$ ]] && printf -v "$varVar" $(checkAndSet $dummy "true") || setIDs "$varVar" "$str" "$csvstyle" "$dummy" "$max"
                                                                        break
                                                                        ;;
                                                                esac
                                                                i=0
                                                                dummy=$(echo $dummy | sed -e 's/^,//' -e 's/,$//')
                                                                clearScreen
                                                            fi
                                                        done
                                                        ;;
                                                    ""|0)
                                                        printf -v "$varVar" 0
                                                        ;;
                                                    *)
                                                        dummy=$(echo $dummy | sed -e 's/^,//' -e 's/,$//')
                                                        [[ -z $dummy ]] && setIDs "$varVar" "$str" "$csvstyle" "$dummy" "$max"
                                                        case $csvstyle in
                                                            [Tt][Rr][Uu][Ee])
                                                                [[ $dummy =~ ^[0-9,]+$ ]] && printf -v "$varVar" $(checkAndSet $dummy) || setIDs "$varVar" "$str" "$csvstyle" "$dummy" "$max"
                                                                ;;
                                                            *)
                                                                [[ $dummy =~ ^[0-9]+$ ]] && printf -v "$varVar" $(checkAndSet $dummy "true") || setIDs "$varVar" "$str" "$csvstyle" "$dummy" "$max"
                                                                ;;
                                                        esac
                                                        ;;
                                                esac
                                            done
                                            IFS=$oIFS
                                        }
                                        [[ $exists != "#!ok" ]] && handleError "Unable to register host: $exists ($0)\n   Args Passed: $*"
                                        host=""
                                        imageid=""
                                        blImage=""
                                        keyEnter=""
                                        res=""
                                        while [[ $res != "#!ok" ]]; do
                                            echo -n " * Enter hostname for this computer: "
                                            read host
                                            if [[ ${#host} -gt 15 ]]; then
                                                host=${host:0:15}
                                                echo " | Truncated to 15 characters: $host"
                                                usleep 2000000
                                            fi
                                            host=$(echo $host | base64)
                                            res=$(curl -ks --data "host=$host" http://${web}service/hostnameloop.php 2>/dev/null)
                                            [[ $res != "#!ok" ]] && echo "$res"
                                        done
                                        imageid=""
                                        setIDs "imageid" "image" "" "" 20
                                        if [[ $(curl -ks http://${web}service/locationcheck.php 2>/dev/null) == "##" ]]; then
                                            while [[ -z $askme ]]; do
                                                echo -n "    Would you like to assign a location for this host? (y/N) "
                                                read askme
                                                case $askme in
                                                    [Nn]|[Nn][Oo]|"")
                                                        askme="N"
                                                        ;;
                                                    [Yy]|[Yy][Ee][Ss])
                                                        setIDs "locationid" "location" "" "" 20
                                                        location64=$locationid
                                                        ;;
                                                    *)
                                                        askme=""
                                                        echo " * Invalid input, please try again"
                                                        ;;
                                                esac
                                            done
                                        fi
                                        echo " * You entered all required information, "
                                        askme=""
                                        while [[ -z $askme ]]; do
                                            echo -n "    Would you like to deploy image to this computer now? (y/N) "
                                            read askme
                                            case $askme in
                                                [Nn]|[Nn][Oo]|"")
                                                    askme="N"
                                                    ;;
                                                [Yy]|[Yy][Ee][Ss])
                                                    tmp=""
                                                    ret=""
                                                    retry=3
                                                    while [[ $ret != "#!ok" && ! $retry -eq 0 ]]; do
                                                        echo " * Enter FOG GUI Username and Password"
                                                        echo -n "    Username: "
                                                        read username
                                                        echo -n "    Password: "
                                                        read -s password
                                                        user64=$(echo $username | tr -d '\012' | base64)
                                                        pass64=$(echo $password | tr -d '\012' | base64)
                                                        ret=$(curl -ks --data "mac=$mac&username=$user64&password=$pass64" http://${web}service/checkcredentials.php 2>/dev/null)
                                                        case $ret in
                                                            '#!ok')
                                                                echo
                                                                echo " * This host will reboot and deployment will start!"
                                                                ret=$tmp
                                                                realdoimage=$(echo -n 1 | base64)
                                                                break
                                                                ;;
                                                            '#!il')
                                                                echo
                                                                echo " * Error: Invalid Login! ($retry remaining)"
                                                                let retry-=1
                                                                ;;
                                                        esac
                                                    done
                                                    askme="Y"
                                                    ;;
                                                *)
                                                    askme=""
                                                    echo " * Invalid input, please try again"
                                                    ;;
                                            esac
                                        done
                                        dots "Attempting to register host"
                                        res=""
                                        while [[ -z $res ]]; do
                                            res=$(curl -ks --data "mac=$mac&advanced=$(echo -n 1 | base64)&host=$host&imageid=$imageid&doimage=$realdoimage&location=$location64&username=$user64" http://${web}service/auto.register.php 2>/dev/null)
                                            echo "$res"
                                            usleep 2000000
                                        done
                                        . /bin/fog.inventory
                                        usleep 2000000
                                        
                                        G 1 Reply Last reply Apr 3, 2017, 6:17 PM Reply Quote 0
                                        • G
                                          george1421 Moderator @JGallo
                                          last edited by Apr 3, 2017, 6:17 PM

                                          @JGallo OK the forum really manged your code in the post.

                                          Let go back to basics. Insert this code in your fog.postinit

                                          
                                          echo "Installing Patch"
                                          debugPause
                                          
                                          cp -f ${postinitpath}fog.reg.man.fix /bin/fog.reg.man
                                          
                                          echo "Done Patching"
                                          debugPause
                                          

                                          If that doesn’t work then we will need to install the debug kernel parameters again and figure out what is going wrong on the other end. If you see the Installing Patch in registration mode then we know the script is being called.

                                          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!

                                          J 1 Reply Last reply Apr 3, 2017, 6:27 PM Reply Quote 0
                                          • 1
                                          • 2
                                          • 3
                                          • 2 / 3
                                          2 / 3
                                          • First post
                                            37/53
                                            Last post

                                          213

                                          Online

                                          12.0k

                                          Users

                                          17.3k

                                          Topics

                                          155.2k

                                          Posts
                                          Copyright © 2012-2024 FOG Project