Add additional OS installer images

- Debian 11, Ubuntu 20.04, and OpenBSD 7.0 images
  - Menu is too long, so added pxeboot_boot_images list to determine
    which images to download/include in menu
- Update versions and checksums downloaded for existing images, and use
  version specific paths where applicable.
- Update boot parameters to better support EFI booting
- Update galaxy metadata

Change-Id: Iab6d4385489458ff0e4491c4b1de544b442c2622
12 files changed
tree: 0db025e292c61535575c0dbfbb7c727ec04d24cd
  1. .cookiecutter_params.json
  2. .gitreview
  3. .reuse/
  4. LICENSES/
  5. Makefile
  6. README.md
  7. VERSION
  8. defaults/
  9. handlers/
  10. meta/
  11. molecule/
  12. tasks/
  13. templates/
  14. vars/
README.md

pxeboot

Configures PXE and iPXE related boot scripts and images on an web server.

See the ipxe-build repo for building iPXE payload images.

The iPXE boot.ipxe script:

  • Has a menu that reports system information and network status
  • Gives options for installation (interactive and autoinstall) and diagnostic tools (currently: memtest)
    • Alternate options to help debug or supply nonfree firmware
  • List of images in the iPXE menu is specified by the pxeboot_boot_images variable for customizing which tools are available.
  • By default, continues boot normally after 10 seconds

Also populates the kernel, initrd, and other files needed to network boot.

For fully automated installation, separate Debian/Ubuntu preseed files are created based on the serial number of the device (and possibly other criteria like MAC address in the future). Hosts are defined in the pxeboot_hosts list, which has these options:

  • domain: Domain extension for the host
  • hostname: Hostname of the system
  • serial: Serial number, must match the SMBIOS supplied serial for server to boot properly.
  • iface: (optional) Network interface to use when setting up the system. This is primarily to work around this bug which can cause the wrong interface to be selected in the install process: https://bugs.launchpad.net/ubuntu/+source/netcfg/+bug/713385

Documentation of the preseed process can be found in these links:

Some systems may need additional firmware to boot properly (for example, to initialize network cards), which can be supplied during boot as another cpio file: https://wiki.debian.org/DebianInstaller/NetbootFirmware

Additional references:

https://wiki.debian.org/DebianInstaller/Preseed https://wiki.ubuntu.com/UEFI/PXE-netboot-install https://help.ubuntu.com/lts/installation-guide/example-preseed.txt

iPXE script examples: https://github.com/netbootxyz/netboot.xyz

Example Playbook

- hosts: all
  vars:
    pxeboot_hosts:
      - {domain: 'example.com', hostname: 'server1', serial: 'abc123'}
      - {domain: 'example.com', hostname: 'server2', serial: 'abc123', iface: 'eno2'}
  roles:
    - pxeboot

License and Author

© 2020 Open Networking Foundation support@opennetworking.org License: Apache-2.0