Fog upgrade to 1.5 broke PXE installation



  • Hi,
    We use FOG for both imaging and pxe installation. The hooks that were created with Tom’s (author) help in version 1.3 & 1.4 worked like a champ. Upgraded to the latest 1.5-RC9. Where I noticed the
    /var/www/fog/lib/hooks/boottask.hook.php file format was changed. Re-created all our hooks in new format.
    Now the PXE install is starting. The install freezes right after fetching the initrd image. Tried with different flavors of linux ( ubuntu & centos ). Tried adding “acpi=off” to the kernel arguments. Looks like this more on the fog services. Can’t see any debugging logs. Now I am tempted to role back to old version. Before that wanted to try for support.

    Thank you
    Chakri


  • Developer

    @csa So most probably it’s got something to do with the Ubuntu install you are trying to boot. Are you able to download those files using your web browser? http://10.10.34.98/fog/OS_IMAGES/ubuntu-16.04-DVD/install/netboot/ubuntu-installer/amd64/linux and http://10.10.34.98/fog/OS_IMAGES/ubuntu-16.04-DVD/install/netboot/ubuntu-installer/amd64/initrd.gz

    Which versions of the binaries did you test? See Tom’s post where he suggested to checkout tags/1.4.0 and try those. Did you also checkout 1.3.0. Do they all have the hang?



  • @sebastian-roth I meant to say the issue is still the same. It gets hung at the same spot. Fog task deploy or capture NO we don’t see any issues but those are images.
    Thank you


  • Developer

    @csa What do you mean by “There is no difference”?? Most if not all files differ in size! Why do you think they’re all the same?

    As I already said days ago: On that picture we see you try booting Ubuntu install kernel. Do you see the very same hang on init when booting into a FOG task like deploy or capture???



  • @sebastian-roth There is no difference. It still pauses at the installation.

    Version 1.5 binaries

    # ls -la /opt/BKUP/tftpboot/*.*pxe
    -rw-r-xr-x 1 fog root    448 Sep 27 17:58 /opt/BKUP/tftpboot/default.ipxe
    -rw-r-xr-x 1 fog root  94044 Sep 27 17:58 /opt/BKUP/tftpboot/intel.kkpxe
    -rw-r-xr-x 1 fog root  94092 Sep 27 17:58 /opt/BKUP/tftpboot/intel.kpxe
    -rw-r-xr-x 1 fog root  94121 Sep 27 17:58 /opt/BKUP/tftpboot/intel.pxe
    -rw-r-xr-x 1 fog root 348364 Sep 27 17:58 /opt/BKUP/tftpboot/ipxe.kkpxe
    -rw-r-xr-x 1 fog root 348412 Sep 27 17:58 /opt/BKUP/tftpboot/ipxe.kpxe
    -rw-r-xr-x 1 fog root 348459 Sep 27 17:58 /opt/BKUP/tftpboot/ipxe.pxe
    -rw-r-xr-x 1 fog root  94880 Sep 27 17:58 /opt/BKUP/tftpboot/realtek.kkpxe
    -rw-r-xr-x 1 fog root  94928 Sep 27 17:58 /opt/BKUP/tftpboot/realtek.kpxe
    -rw-r-xr-x 1 fog root  94892 Sep 27 17:58 /opt/BKUP/tftpboot/realtek.pxe
    -rw-r-xr-x 1 fog root  93613 Sep 27 17:58 /opt/BKUP/tftpboot/undionly.kkpxe
    -rw-r-xr-x 1 fog root  93661 Sep 27 17:58 /opt/BKUP/tftpboot/undionly.kpxe
    -rw-r-xr-x 1 fog root  93645 Sep 27 17:58 /opt/BKUP/tftpboot/undionly.pxe
    

    Version 1.4 binaries

    ~# ls -la /tftpboot/*.*pxe
    -rw-r-xr-x 1 fog root    448 Sep 27 17:58 /tftpboot/default.ipxe
    -rw-r-xr-x 1 fog root  95716 Oct 18 16:11 /tftpboot/intel.kkpxe
    -rw-r-xr-x 1 fog root  95764 Oct 18 16:11 /tftpboot/intel.kpxe
    -rw-r-xr-x 1 fog root  95765 Oct 18 16:11 /tftpboot/intel.pxe
    -rw-r-xr-x 1 fog root 348865 Oct 18 16:11 /tftpboot/ipxe.kkpxe
    -rw-r-xr-x 1 fog root 348913 Oct 18 16:11 /tftpboot/ipxe.kpxe
    -rw-r-xr-x 1 fog root 348777 Oct 18 16:11 /tftpboot/ipxe.pxe
    -rw-r-xr-x 1 fog root  96536 Oct 18 16:11 /tftpboot/realtek.kkpxe
    -rw-r-xr-x 1 fog root  96584 Oct 18 16:11 /tftpboot/realtek.kpxe
    -rw-r-xr-x 1 fog root  96605 Oct 18 16:11 /tftpboot/realtek.pxe
    -rw-r-xr-x 1 fog root  95290 Oct 18 16:11 /tftpboot/undionly.kkpxe
    -rw-r-xr-x 1 fog root  95338 Oct 18 16:11 /tftpboot/undionly.kpxe
    -rw-r-xr-x 1 fog root  95380 Oct 18 16:11 /tftpboot/undionly.pxe
    

  • Developer

    @csa Any news on this?


  • Developer

    @csa said in Fog upgrade to 1.5 broke PXE installation:

    The binaries are same size

    That’s a first sign but still does not mean that the binaries are the same. Please compare md5sums as well to make sure.

    The other thing that comes to my mind… On that picture we see you try booting Ubuntu install kernel. Do you see the very same hang on init when booting into a FOG task like deploy or capture???



  • @tom-elliott The binaries are same size. There is no difference. Looks like they weren’t changed on the new version.


  • Senior Developer

    @csa You could just checkout the 1.4.0 tag:

    git pull
    git fetch --all --tags --prune
    git checkout tags/1.4.0
    cp packages/tftp/*.*pxe /tftpboot/
    cp packages/tftp/*.efi /tftpboot/
    git checkout dev-branch
    git pull
    

    That should do it, though I will admit I haven’t tested this all out.



  • Morning @tom-elliott I pull the git repo and run the install program every time I upgrade. How can I safely role back to " ipxe files from 1.4"?

    Thank you
    Chakri


  • Senior Developer

    @csa I’m of the bet this may be similar to the other problems but it’s the ipxe binary being newer than what was in 1.4.

    Could you try using the ipxe files from 1.4 and see if the machine starts working again? I really don’t think it’s anything with bootmenu generation.


  • Moderator

    @csa It would be interesting to see what FOG is telling iPXE when this freeze happens. With a browser what output does this command give you? http://10.10.34.98/fog/service/ipxe/boot.php?mac=00:1e:c9:7a:36:48

    Post the results here, please. Quite frankly the image shows a normal boot, what we don’t see is the rest of the ipxe commands that are being executed.



  • @sebastian-roth please check the attached image. 0_1507759415876_6e646d8a-ddca-4171-8afc-66bc4ffeb75b.jpg



  • @george1421 The same entries were working fine in version 1.3 and 1.4. Version 1.5 introduced this issues.


  • Developer

    @george1421 Good you mention the http/https change we made as I have not had that in mind. AFAIK this should not be causing a “hang issue”.

    @csa Maybe posting a picture or video of the hang is a good start. Sometimes there is something we see on the screen that just does not call out to you…


  • Moderator

    @Sebastian-Roth

    'kernel ${boot-url}${path}/images/pxeboot/vmlinuz

    Is this impacted by the http / https issue that also impacted the usb booting of FOS? I agree the code looks good and the boot-url variable was the only thing that jumped out at me.


  • Developer

    @csa I haven’t had the time to test the code you posted but it looks fine on first sight.

    Not sure what could be wrong here.

    Which iPXE binary do you use by the way?



  • @sebastian-roth also I tried passing the string acpi=off to kernel options. To solve any generic TFTP issues.



  • @tom-elliott Sorry having tough time uploading files. Pasting the file.

    file --> boottaskcentos7.hook.php

    <?php
    /**
     * Alters the boot task to make a custom entry.
     *
     * PHP version 5
     *
     * @category BootTask
     * @package  FOGProject
     * @author   Tom Elliott <tommygunsster@gmail.com>
     * @license  http://opensource.org/licenses/gpl-3.0 GPLv3
     * @link     https://fogproject.org
     */
    /**
     * Alters the boot task to make a custom entry.
     *
     * @category BootTask
     * @package  FOGProject
     * @author   Tom Elliott <tommygunsster@gmail.com>
     * @license  http://opensource.org/licenses/gpl-3.0 GPLv3
     * @link     https://fogproject.org
     */
    class BootTaskCentos7 extends Hook
    {
        /**
         * The name of this hook.
         *
         * @var string
         */
        public $name = 'BootTaskCentos7';
        /**
         * The description of this hook.
         *
         * @var string
         */
        public $description = 'This is for Xenial Server installation';
        /**
         * Is this hook active or not.
         *
         * @var bool
         */
        public $active = true;
        /**
         * Initializes object.
         *
         * @return void
         */
        public function __construct()
        {
            parent::__construct();
            self::$HookManager
                ->register(
                    'IPXE_EDIT',
                    array(
                        $this,
                        'changeTask'
                    )
                );
        }
        /**
         * Change the task.
         *
         * @param mixed $arguments The items to alter.
         *
         * @return void
         */
        public function changeTask($arguments)
        {
            if (!isset($arguments['ipxe']['task'])) {
                return;
            }
            $TaskType = self::getClass('TaskType')
                ->set('name', 'centos7-install')
                ->load('name');
            if (!$TaskType->isValid()) {
                return;
            }
            $keys = array_keys($arguments['ipxe']['task']);
            if (!in_array($TaskType->get('id'), $keys)) {
                return;
            }
            $arguments['ipxe']['task'][$TaskType->get('id')] = array(
                'set path /OS_IMAGES/CENTOS-7.0-1511-DVD',
                'set nfs_path /images/OS_IMAGES/CENTOS-7.0-1511-DVD',
    	    'kernel ${boot-url}${path}/images/pxeboot/vmlinuz ks=${boot-url}/kickstarts/centos7.cfg ip=dhcp acpi=off || read void',
                'initrd ${boot-url}${path}/images/pxeboot/initrd.img || read void', 
                'boot || read void',
            );
            $arguments['Host']
                ->get('task')
                ->set(
                    'stateID',
                    self::getCompleteState()
                )->save();
        }
    }
    

    file --> boottaskxenialserver.hook.php

    <?php
    /**
     * Alters the boot task to make a custom entry.
     *
     * PHP version 5
     *
     * @category BootTaskxenialserver
     * @package  FOGProject
     * @author   Tom Elliott <tommygunsster@gmail.com>
     * @license  http://opensource.org/licenses/gpl-3.0 GPLv3
     * @link     https://fogproject.org
     */
    /**
     * Alters the boot task to make a custom entry.
     *
     * @category BootTaskxenialserver
     * @package  FOGProject
     * @author   Tom Elliott <tommygunsster@gmail.com>
     * @license  http://opensource.org/licenses/gpl-3.0 GPLv3
     * @link     https://fogproject.org
     */
    class BootTaskxenialserver extends Hook
    {
        /**
         * The name of this hook.
         *
         * @var string
         */
        public $name = 'BootTaskxenialserver';
        /**
         * The description of this hook.
         *
         * @var string
         */
        public $description = 'Alter the boot task to make a custom task hook';
        /**
         * Is this hook active or not.
         *
         * @var bool
         */
        public $active = true;
        /**
         * Initializes object.
         *
         * @return void
         */
        public function __construct()
        {
            parent::__construct();
            self::$HookManager
                ->register(
                    'IPXE_EDIT',
                    array(
                        $this,
                        'changeTask'
                    )
                );
        }
        /**
         * Change the task.
         *
         * @param mixed $arguments The items to alter.
         *
         * @return void
         */
        public function changeTask($arguments)
        {
            if (!isset($arguments['ipxe']['task'])) {
                return;
            }
            $TaskType = self::getClass('TaskType')
                ->set('name', 'xenial-server-install')
                ->load('name');
            if (!$TaskType->isValid()) {
                return;
            }
            $keys = array_keys($arguments['ipxe']['task']);
            if (!in_array($TaskType->get('id'), $keys)) {
                return;
            }
            $arguments['ipxe']['task'][$TaskType->get('id')] = array(
                'set path /OS_IMAGES/ubuntu-16.04-DVD',
                'set nfs_path /images/OS_IMAGES/ubuntu-16.04-DVD',
                'kernel ${boot-url}${path}/install/netboot/ubuntu'
                . '-installer/amd64/linux || read void',
                'initrd ${boot-url}${path}/install/netboot/ubuntu-installer'
                . '/amd64/initrd.gz || read void',
                'imgargs linux root=/dev/nfs boot=casper live-installer'
                . '/net-image=${boot-url}${path}/install/filesystem.squashfs '
                . 'ks=${boot-url}/OS_IMAGES/kickstarts/xenial_server_ks.cfg '
                . 'ip=dhcp splash quiet - || read void',
                'boot || read void',
            );
            $arguments['Host']
                ->get('task')
                ->set(
                    'stateID',
                    self::getCompleteState()
                )->save();
        }
    }
    
    

  • Senior Developer

    @csa You may likely need to reupload.

    Wait until the pictures show up in the Preview pane. Otherwise all we see is the “text” of it trying to upload.


Log in to reply
 

493
Online

39192
Users

10844
Topics

103205
Posts

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