Further uefi and boot.ipxe fixes

Removed more Debian 10 items that were missed

Updated Debian 11 checksums

Change-Id: Ide5d2b4b5d79ce5f4113d4e66e73c24c53114e93
3 files changed
tree: ec4e659fbdbaf7a76a7b425f438bd0e595f42294
  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.

Also creates preseed files used to automate OS installation.

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 of dicts, which each have these keys:

  • domain: Domain extension for the host
  • hostname: Hostname of the system
  • 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
  • To allow iPXE to load a file specific to the hardware, one or both of these keys must be included:
    • serial: Device serial number, must match value given in SMBIOS
    • mac_address: MAC address of the network card, colon separated format

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