USB Creation

This guide walks the user through setting up a bootable USB drive for bootstrapping the Fawkes cluster.

Users can also remotely mount the ISO using a BMC, but at this time a guide for doing so does not exist.

Downloading

The Fawkes tarball needs to be downloaded.

For the time being, the artifacts are downloaded individually and from a private mirror. In the near future these will be available in a single artifact from a public mirror.

Prerequisites

The following prerequisites are necessary for completing this guide.

  • curl

Windows users can download curl for Windows.

Downloading the Fawkes tarball

Fawkes is only available from a private mirror at this time.

Using the private mirror requires credentials to https://artifactory.algol60.net. For information on obtaining these, see this guide.

  1. Set Credentials.

    • Username and token (see this guide for assistance).

      ARTIFACTORY_USER=
      read -s ARTIFACTORY_TOKEN
  2. Set a desired release.

    • A specific release.

      RELEASE=0.0.1-alpha.3
    • The latest release from stable or unstable.

      At this time, Fawkes is still in a pre-release state and the stable stream is empty.
      STREAM=unstable
      RELEASE="$(curl -u "${ARTIFACTORY_USER}":"${ARTIFACTORY_TOKEN}" "https://artifactory.algol60.net/artifactory/api/search/latestVersion?g=${STREAM}&a=fawkes")"
  3. Download the tarball.

    To use a proxy, add --proxy http://example.com:443 to each curl call.
    if [[ "$RELEASE" =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]]; then
        STREAM=stable
    else
        STREAM=unstable
    fi
    curl -C - -o "fawkes-${RELEASE}.tar.gz" \
    "https://$ARTIFACTORY_USER:$ARTIFACTORY_TOKEN@artifactory.algol60.net/artifactory/fawkes-releases/${STREAM}/fawkes/${RELEASE}/fawkes-${RELEASE}.tar.gz"

Creating the bootable USB drive

This segment will walk the user through creating the USB drive with the downloaded tarball.

Linux

The Linux method will enable persistence as well as data storage for bringing artifacts into the booted LiveCD.

Prerequisites

Prerequisites for creating the USB drive from a Linux box.

  • blkid

  • dd

  • mktemp

  • parted

  • sgdisk

  • sha256sum

Steps

The following steps will create a USB drive from a Linux OS.

  1. Extract all images and RPMs from the tarball.

    tar --wildcards -xzvf ./fawkes-${RELEASE}.tar.gz \
        "*/images/" \
        "*/rpm/" \
        "*/security/"
  2. Validate the image’s SHA sums.

    for image_dir in fawkes-${RELEASE}/images/*; do
        (
        cd "$image_dir"
        sha256sum -c ./"$(basename "$image_dir")"*sha256.txt
        )
    done

    All the images should return with OK. If any fail, please stop and open a bug by using the bug opening tab on the bottom right of this screen.

  3. Install Crucible

    crucible is undergoing source code changes and will have packages for yum and debian package managers in the near future.
    • RPM method (SUSE/RedHat)

      rpm --import "fawkes-${RELEASE}/security/hpe-signing-key.asc"
      crucible --version
      sudo mv /etc/zypp/repos.d{,.bak}
      sudo zypper --plus-repo "fawkes-${RELEASE}/rpm/sle-$(awk -F= '/VERSION=/{gsub(/["-]/, "") ; print tolower($NF)}' /etc/os-release)" in --details -n crucible
      sudo mv /etc/zypp/repos.d{.bak,}
      crucible --version
  4. Find the desired USB drive.

    The target device does not need to be wiped.
    • The following command will help deduce which device mapper name to use.

      lsblk -b -l -d -o SIZE,NAME,TYPE,SUBSYSTEMS | grep usb

      Example output:

      256641603584 sdd   disk block:scsi:usb:pci
  5. Set the USB device to a variable.

    • Device mapper path.

      USB=/dev/sdd
    • FileSystem Label.

      USB=/dev/disk/by-label/MYUSB
  6. Export the RELEASE variable from earlier (optional). This will ensure that the latest crucible is installed into the USB if it wasn’t included in the fawkes-live image.

    export RELEASE
  7. Invoke the script, optionally passing a different size (in megabytes) for the copy-on-write persistent partition.

    crucible storage bootable "${USB}" "fawkes-${RELEASE}/images/fawkes-live/fawkes-live-*.iso"
  8. Mount the USB drive and copy over our downloaded artifacts.

    sudo mkdir -p /mnt
    sudo mount "${USB}4" /mnt
    sudo cp -p "fawkes-${RELEASE}.tar.gz" /mnt/
    sudo umount /mnt
  9. Eject the USB drive and plug it into the server for deployment.

MacOS and Windows

Creating a bootable USB drive from MacOS and Windows is feasible using the help of a few third-party tools.

The MacOS and Windows method will not enable persistence on the drive.

Prerequisites

This guide suggests the following third-party tools for USB creation.

Steps

The following steps will create a bootable USB drive from a MacOS or Windows machine.

dd can also be used for macOS users.
  1. Open belanaEtcher

  2. Select the ISO file, the USB drive, and click Flash

  3. Eject the USB drive and insert it into the server