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

Add Full Inventory Task to PXE Menu

Scheduled Pinned Locked Moved
FOG Problems
3
24
2.8k
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 @FlareImp
    last edited by george1421 Dec 15, 2020, 9:36 AM Dec 15, 2020, 3:36 PM

    @flareimp From a computer on the same network as your FOG server http://<fog_server_ip>/fog/service/ipxe/boot.php&mac=00:00:00:00:00:01 just replace <fog_server_ip> with the IP address of your fog server.

    I guess I should also ask what version of FOG are you using?

    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!

    F 2 Replies Last reply Dec 15, 2020, 3:38 PM Reply Quote 0
    • F
      FlareImp @george1421
      last edited by FlareImp Dec 15, 2020, 9:39 AM Dec 15, 2020, 3:38 PM

      @george1421 Okay, I did that and it just takes me to the fog web gui and has me log into the home screen.

      I am running Ubuntu 16.04 with Fog 1.5.9

      1 Reply Last reply Reply Quote 0
      • F
        FlareImp @george1421
        last edited by Dec 15, 2020, 4:00 PM

        @george1421 If I delete the “&mac=00:00:00:00:00:01” part I get the following output

        #!ipxe
        set fog-ip 10.220.9.50
        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://10.220.9.50/fog/service/ipxe/bg.png --left 100 --right 80 && goto console_set || goto alt_console
        :MENU
        menu
        colour --rgb 0xff0000 0 ||
        cpair --foreground 1 1 ||
        cpair --foreground 0 3 ||
        cpair --foreground 4 4 ||
        item --gap Host is NOT registered!
        item --gap -- -------------------------------------
        item fog.local Boot from hard disk
        item fog.memtest Run Memtest86+
        item fog.reginput Perform Full Host Registration and Inventory
        item fog.reg Quick Registration and Inventory
        item fog.deployimage Deploy Image
        item fog.multijoin Join Multicast Session
        item fog.sysinfo Client System Information (Compatibility)
        item fog.custom.inventory Custom Quick Inventory
        choose --default fog.local --timeout 3000 target && goto ${target}
        :fog.local
        chain -ar ${boot-url}/service/ipxe/grub.exe --config-file="rootnoverify (hd0);chainloader +1" || goto MENU
        :fog.memtest
        kernel memdisk initrd=memtest.bin iso raw
        initrd memtest.bin
        boot || goto MENU
        :fog.reginput
        kernel bzImage32 loglevel=4 initrd=init_32.xz root=/dev/ram0 rw ramdisk_size=275000 web=http://10.220.9.50/fog/ consoleblank=0 rootfstype=ext4 storage=10.220.9.50:/images/ storageip=10.220.9.50 nvme_core.default_ps_max_latency_us=0 loglevel=4 mode=manreg
        imgfetch init_32.xz
        boot || goto MENU
        :fog.reg
        kernel bzImage32 loglevel=4 initrd=init_32.xz root=/dev/ram0 rw ramdisk_size=275000 web=http://10.220.9.50/fog/ consoleblank=0 rootfstype=ext4 storage=10.220.9.50:/images/ storageip=10.220.9.50 nvme_core.default_ps_max_latency_us=0 loglevel=4 mode=autoreg
        imgfetch init_32.xz
        boot || goto MENU
        :fog.deployimage
        login
        params
        param mac0 ${net0/mac}
        param arch ${arch}
        param username ${username}
        param password ${password}
        param qihost 1
        isset ${net1/mac} && param mac1 ${net1/mac} || goto bootme
        isset ${net2/mac} && param mac2 ${net2/mac} || goto bootme
        param sysuuid ${uuid}
        :fog.multijoin
        login
        params
        param mac0 ${net0/mac}
        param arch ${arch}
        param username ${username}
        param password ${password}
        param sessionJoin 1
        isset ${net1/mac} && param mac1 ${net1/mac} || goto bootme
        isset ${net2/mac} && param mac2 ${net2/mac} || goto bootme
        param sysuuid ${uuid}
        :fog.sysinfo
        kernel bzImage32 loglevel=4 initrd=init_32.xz root=/dev/ram0 rw ramdisk_size=275000 web=http://10.220.9.50/fog/ consoleblank=0 rootfstype=ext4 storage=10.220.9.50:/images/ storageip=10.220.9.50 nvme_core.default_ps_max_latency_us=0 loglevel=4 mode=sysinfo
        imgfetch init_32.xz
        boot || goto MENU
        :fog.custom.inventory
        kernel bzImage
        imgfetch init.xz
        imgargs loglevel=4 initrd=init.xz root=/dev/ram0 rw ramdisk_size=275000 web=${boot-url}/ consoleblank=0 rootfstype=ext4 storage=${fog-ip}:/images/ storageip=${fog-ip} loglevel=4 mode=inventory deployed=1
        boot|| goto MENU
        param sysuuid ${uuid}
        :bootme
        chain -ar http://10.220.9.50/fog/service/ipxe/boot.php##params ||
        goto MENU
        autoboot
        
        G 1 Reply Last reply Dec 15, 2020, 4:54 PM Reply Quote 0
        • G
          george1421 Moderator @FlareImp
          last edited by george1421 Dec 15, 2020, 10:55 AM Dec 15, 2020, 4:54 PM

          @flareimp said in Add Full Inventory Task to PXE Menu:

          If we look at the FOG created menu for system info

          :fog.sysinfo
          kernel bzImage32 loglevel=4 initrd=init_32.xz root=/dev/ram0 rw ramdisk_size=275000 web=http://10.220.9.50/fog/ consoleblank=0 rootfstype=ext4 storage=10.220.9.50:/images/ storageip=10.220.9.50 nvme_core.default_ps_max_latency_us=0 loglevel=4 mode=sysinfo
          imgfetch init_32.xz
          boot || goto MENU
          

          And we look at the custom menu I initially provided they should match exactly except for a few changed parameters. This should work. I did notice in your menu item that boot and the double pipe symbols don’t have a space between.

          :fog.custom.inventory
          kernel bzImage loglevel=4 initrd=init.xz root=/dev/ram0 rw ramdisk_size=275000 web=${boot-url}/ consoleblank=0 rootfstype=ext4 storage=${fog-ip}:/images/ storageip=${fog-ip} loglevel=4 mode=inventory deployed=1
          imgfetch init.xz
          boot|| goto MENU
          

          The bzImage32 and init_32.xz is just an artifact of calling the menu via a browser and can be ignored.

          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!

          F 1 Reply Last reply Dec 16, 2020, 2:15 PM Reply Quote 0
          • F
            FlareImp @george1421
            last edited by Dec 16, 2020, 2:15 PM

            @george1421 adding the space after the boot|| has gotten me farther now.

            Now it is displaying Attempting to check in …Failed
            Invalid MAC Address! (in line for )

            G 1 Reply Last reply Dec 16, 2020, 2:33 PM Reply Quote 0
            • G
              george1421 Moderator @FlareImp
              last edited by george1421 Dec 16, 2020, 8:35 AM Dec 16, 2020, 2:33 PM

              @flareimp I didn’t want to confuse the subject so I didn’t initially include this.

              When you schedule an inventory task this is the call to launch the FOS Linux client.

              #!ipxe
              set fog-ip 192.168.50.53
              set fog-webroot fog
              set boot-url https://${fog-ip}/${fog-webroot}
              set storage-ip 192.168.50.53
              kernel http://192.168.50.53/fog/service/ipxe/bzImage32 loglevel=4 initrd=init_32.xz root=/dev/ram0 rw ramdisk_size=275000 web=https://192.168.50.53/fog/ consoleblank=0 rootfstype=ext4 mdraid=true mac=00:00:00:87:c2:09 ftp=192.168.50.53 storage=192.168.50.53:/images/dev/ storageip=192.168.50.53 osid=9 irqpoll hostname=00000087c209 mode=inventory deployed=1 mdraid=true
              imgfetch http://192.168.50.53/fog/service/ipxe/init_32.xz
              boot
              

              What we are doing is simulating that call via an iPXE menu. I discarded the parameters above that shouldn’t be needed for a hardware inventory. I may have discarded too many. So I do see it passing the mac address during this invocation. Understand what we are doing is not using FOG as it was intended. It should work by YMMV.

              So lets tweak the last command I gave you by adding in the mac address (there is room for this command it get it wrong if you have multiple nic adapters in the computer).

              :fog.custom.inventory
              kernel bzImage loglevel=4 initrd=init.xz root=/dev/ram0 rw ramdisk_size=275000 web=${boot-url}/ consoleblank=0 rootfstype=ext4 storage=${fog-ip}:/images/ storageip=${fog-ip} loglevel=4 mac=${net0/mac} mode=inventory deployed=1
              imgfetch init.xz
              boot|| goto 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!

              F 1 Reply Last reply Dec 16, 2020, 2:39 PM Reply Quote 0
              • F
                FlareImp @george1421
                last edited by Dec 16, 2020, 2:39 PM

                @george1421 after adding your changes to the config now it is showing the hostname and mac but saying no task found. So would the next step be adding a command to create and start the inventory task?

                G 1 Reply Last reply Dec 16, 2020, 2:46 PM Reply Quote 0
                • G
                  george1421 Moderator @FlareImp
                  last edited by Dec 16, 2020, 2:46 PM

                  @flareimp So it looks like this route isn’t possible to perform an immediate inventory since a task needs to be deployed on the FOG server. This appears to not be target computer driven. Sorry I should have tested it in my lab first. I know when you run a registration from the iPXE menu it also sends an inventory to the FOG server and that is target computer driven.

                  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!

                  F 1 Reply Last reply Dec 16, 2020, 2:52 PM Reply Quote 0
                  • F
                    FlareImp @george1421
                    last edited by Dec 16, 2020, 2:52 PM

                    @george1421 If I have a host that is not registered in fog and I choose to run the Full Inventory task from the PXE menu, can’t we do something similar to that with hosts that are already registered? I do remember back in the Fog .32 days it was possible.

                    Thanks for all your assistance!

                    G 1 Reply Last reply Dec 16, 2020, 3:04 PM Reply Quote 0
                    • G
                      george1421 Moderator @FlareImp
                      last edited by Dec 16, 2020, 3:04 PM

                      @flareimp said in Add Full Inventory Task to PXE Menu:

                      can’t we do something similar to that with hosts that are already registered? I do remember back in the Fog .32 days it was possible.

                      This was my initial thought as the inventory was driven by the client computer. But as we just confirmed this is no longer the case with FOG 1.5.9. With 1.5.9 a task has to be running on the fog server to start the inventory process.

                      Does your environment use the FOG Client? If so that should also perform an inventory on some interval.

                      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!

                      F 1 Reply Last reply Dec 16, 2020, 3:10 PM Reply Quote 0
                      • F
                        FlareImp @george1421
                        last edited by Dec 16, 2020, 3:10 PM

                        @george1421 Yes, all my computers are using the fog client, the issue is we are not allowed to set PXE as the first boot option, has to be the hard drive, so it negates the feature. I was just thinking instead of giving our Interns/temp help access to fog and starting inventory tasks from the web gui it would just be faster to PXE boot a computer and select “run inventory”.

                        1 Reply Last reply Reply Quote 0
                        • S
                          Sebastian Roth Moderator
                          last edited by Dec 16, 2020, 5:13 PM

                          @flareimp said in Add Full Inventory Task to PXE Menu:

                          now it is showing the hostname and mac but saying no task found.

                          I have to say that I never tried this myself yet and I am not really sure why inventory works when run with the full registration (AFAIK not a task) but otherwise needs a task scheduled. I might find some time to check this out on Friday.

                          Would using the FOG API be of any help for you? You could schedule inventory tasks with that. Though someone would still need to manually PXE boot the machine.

                          I don’t think we have inventory updates through the fog-client yet. It’s been discussed on github but is a little more complex as we’d want to have it work on Windows, Linux and Mac OS X.

                          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
                          • S
                            Sebastian Roth Moderator
                            last edited by Sebastian Roth Dec 18, 2020, 6:53 AM Dec 18, 2020, 12:06 PM

                            @FlareImp I just played with this stuff and seem to be able to update the inventory of a host through the custom iPXE menu using this as parameter:

                            kernel bzImage loglevel=4 initrd=init.xz root=/dev/ram0 rw ramdisk_size=275000 web=${boot-url}/ consoleblank=0 rootfstype=ext4 mac=${mac} storage=${fog-ip}:/images/ storageip=${fog-ip} loglevel=4 mode=inventory
                            imgfetch init.xz
                            boot || goto MENU
                            

                            This is very close to what @george1421 came up with but I removed the deployed=1 parameter at the end of the kernel line because that would make the inventory task to try and check in (NFS mount, task list and so on) though this is not needed for a simple inventory.

                            EDIT: Though it seems to do the inventory update the entries in the DB don’t get updated yet. I will take a look at why this is not working.
                            EDIT2: Needed to add mac=${mac} parameter to make it work, updated parameter code above should work now. Note this is the first MAC address found by iPXE (same as variable ${net0/mac}). You might need to add some more logic in the iPXE code if you have more than one network adapter in some of your hosts and the inventory update does not work.

                            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

                            F 1 Reply Last reply Dec 18, 2020, 1:14 PM Reply Quote 1
                            • F
                              FlareImp @Sebastian Roth
                              last edited by Dec 18, 2020, 1:14 PM

                              @sebastian-roth Thank you and @george1421 for your assistance it this matter. It worked great!

                              Thanks again and keep up the great work!

                              1 Reply Last reply Reply Quote 0
                              • 1
                              • 2
                              • 1 / 2
                              1 / 2
                              • First post
                                20/24
                                Last post

                              251

                              Online

                              12.0k

                              Users

                              17.3k

                              Topics

                              155.2k

                              Posts
                              Copyright © 2012-2024 FOG Project