Technology Preview Installation

In general, the installation of StarlingX release 7.0 Debian Technology Preview on All-in-one Simplex is unchanged.

There are no changes to:

  • The overall installation workflow

  • The installation prerequisites, i.e. required files, boot mechanism (bootable USB or pxeboot server), network connectivity, external DNS Server and a Docker Registry:

  • The hardware requirements: System Hardware Requirements, or

  • The preparation of physical servers, i.e. BIOS setup, etc.

The only minor change in the installation is in the initial install of software on controller-0.

There is a single install menu to choose between an AIO-Controller with the Standard Kernel and an AIO-Controller with the Low-Latency Kernel. Of course the actual console log output of the software install will be different due to OSTree and Debian details.

The Debian installation requires configuration of the new pxeboot grub menus; one for servers with Legacy BIOS support and another for servers with UEFI firmware.

During PXE boot configuration setup, as described in Configure a PXE Boot Server, additional steps are required to collect configuration information and create a grub menu to install StarlingX release 7.0 AIO controller-0 function on the target server.

  1. Wipe the install device prior to Debian installation.

    $ sudo wipedisk --force --include-backup
    $ sudo sgdisk -o /dev/sda
    

    Repeat the sudo sgdisk -o command for all disks, such as dev/sdb, /dev/sdc, and so-on.

  2. Option 1: Install controller-0 from a USB device containing the Debian ISO image.

    Use this method to install locally from a physical or virtual media USB device/ISO.

    1. Add the Debian ISO image to a USB device and make the target server boot the ISO image from that USB device.

    2. During installation, select the install type from the presented menu. For a UEFI installation, the menu options are prefixed with “UEFI “.

  3. Option 2: Install controller-0 from a PXEboot install feed.

    This method uses a network PXEboot install from a remote PXEboot server and ‘feed’ directory.

    • The ‘feed’ directory is a directory containing the mounted contents of the Debian ISO.

    • The ‘feed’ creation process for the Debian install differs from the CentOS method.

    • The ‘feed’ can be populated with either a direct ISO mount or a copy of the ISO content.

    Direct ISO mount method:

    1. Mount the ISO at the feed directory location on the pxeboot server.

    2. Copy the ISO to the ‘feed’ directory location pxeboot server.

      Note

      This can be a common location for installing many servers or a unique location for a specific server.

    3. Mount the ISO as the ‘feed’ directory.

      Note

      The mount requires root access. If you don’t have root access on the PXEboot server then use the ISO copy method.

      $ IMAGENAME=<debian_image>
      $ sudo mount -o loop ${IMAGENAME}.iso ${IMAGENAME}_feed
      

    Copy ISO contents method:

    1. Create a tarball containing the mounted ISO content

    2. Copy the Debian ISO to a location where the ISO can be mounted

    3. Mount the ISO, tar it up and copy the feed tarball to the PXEboot server

    4. Untar the feed tarball at the feed directory location on your PXEboot server.

      An example of the above commands:

      $ IMAGENAME=<debian_image>
      
      $ sudo mount -o loop ${IMAGENAME}.iso ${IMAGENAME}_feed
      $ tar -czf ${IMAGENAME}_feed.tgz ${IMAGENAME}_feed
      $ scp ${IMAGENAME}_feed.tgz <username>@<pxeboot_server>:<feed directory>
      
      $ ssh <username>@<pxeboot_server>
      
      $ cd <feed directory>
      $ tar -xzf ${IMAGENAME}_feed.tgz
      $ rm ${IMAGENAME}_feed.tgz
      
    5. Optionally, link your new feed directory to the name the pxeboot server translates the incoming MAC based DHCP request to.

      $ ln -s ${IMAGENAME}_feed feed
      

      Your ‘feed’ directory or link should now list similarly to the following example:

      drwxr-xr-x  7 someuser users       4096 Jun 13 10:33          starlingx-20220612220558_feed
      lrwxrwxrwx  1 someuser users         58 Jun 13 10:35  feed -> starlingx-20220612220558_feed
      

      The ‘feed’ directory structure should be as follows:

      feed
      ├── bzImage-rt                      ... Lowlatency kernel
      ├── bzImage-std                     ... Standard kernel
      ├── initrd                          ... Installer initramfs image
      ├── kickstart
      │   └── kickstart.cfg               ... Unified kickstart
      │
      ├── ostree_repo                     ... OSTree Archive Repo
      │   ├── config
      │   ├── extensions
      │   └── objects
      │
      ├── pxeboot
           └── samples
              ├── efi-pxeboot.cfg.debian  ... controller-0 UEFI install menu sample
              ├── pxeboot.cfg.debian      ... controller-0 BIOS install menu sample
              ├── pxeboot_setup.sh        ... script used to tailor the above samples
              └── README                  ... info file
      

      Note that many files and directories have been omitted for clarity.

    6. Set up the PXEboot grub menus.

      The ISO contains a pxeboot/sample directory with controller-0 install grub menus.

      • For BIOS: feed/pxeboot/samples/pxeboot.cfg.debian

      • For UEFI: feed/pxeboot/samples/efi-pxeboot.cfg.debian

      You must customize these grub menus for a specific server install by modifying the following variable replacement strings with path and other information that is specific to your pxeboot server.

      xxxFEEDxxx

      The path between http server base and feed directory. For example: /var/www/html/xxxFEED_xxx/<ISO content>

      xxxPXEBOOTxxx

      The offset path between /pxeboot and the feed to find bzImage/initrd. For example: /var/pxeboot/xxxPXEBOOTxxx/<ISO content>

      xxxBASE_URLxxx

      The pxeboot server URL: http://###.###.###.###

      xxxINSTDEVxxx

      The install device name. Default: /dev/sda Example: /dev/nvme01

      xxxSYSTEMxxx

      The system install type index. Default: aio>aio-serial (All-in-one Install - Serial; Console)

      menu32 = no default system install type ; requires manual select

      disk = Disk Boot

      standard>serial = Controller Install - Serial Console

      standard>graphical = Controller Install - Graphical Console

      aio>serial = All-in-one Install - Serial Console

      aio>graphical = All-in-one Install - Graphical Console

      aio-lowlat>serial = All-in-one (lowlatency) Install - Serial Console

      aio-lowlat>graphical = All-in-one (lowlatency) Install - Graphical Console

      The ISO also contains the pxeboot/samples/pxeboot_setup.sh script that can be used to automatically setup both the BIOS and UEFI grub files for a specific install.

      ./feed/pxeboot/samples/pxeboot_setup.sh --help
      
      Usage: ./pxeboot_setup.sh [Arguments Options]
      
      Arguments:
      
      -i | --input   <input path>     : Path to pxeboot.cfg.debian and efi-pxeboot.cfg.debian grub template files
      -o | --output  <output path>    : Path to created pxeboot.cfg.debian and efi-pxeboot.cfg.debian grub files
      -p | --pxeboot <pxeboot path>   : Offset path between /pxeboot and bzImage/initrd
      -f | --feed    <feed path>      : Offset path between http server base and mounted iso
      -u | --url     <pxe server url> : The pxeboot server's URL
      
      Options:
      
      -h | --help                     : Print this help info
      -b | --backup                   : Create backup of updated grub files as .named files
      -d | --device <install device>  : Install device path ; default: /dev/sda
      -s | --system <system install>  : System install type ; default: 3
      
      0 = Disk Boot
      1 = Controller Install - Serial Console
      2 = Controller Install - Graphical Console
      3 = All-in-one Install - Serial Console       (default)
      4 = All-in-one Install - Graphical Console
      5 = All-in-one (lowlatency) Install - Serial Console
      6 = All-in-one (lowlatency) Install - Graphical Console
      
      Example:
      
      pxeboot_setup.sh -i /path/to/grub/template/dir
                       -o /path/to/target/iso/mount
                       -p pxeboot/offset/to/bzImage_initrd
                       -f pxeboot/offset/to/target_feed
                       -u http://###.###.###.###
                       -d /dev/sde
                       -s 5
      

The remaining install steps are also completely unchanged:

Install Kubernetes Platform on All-in-one Simplex