Various fixes

- Add Debian 11 preseed
- Update Debian 11 installation files
- Fix UEFI specific paths
- Fix download URLs for memtest
- fix lint issues with newer molecule
- Fix meta, specify namespace
- Remove Debian 10 (no longer needed) and only test used distros

Change-Id: I0c901ae798994d113c8c7c0fae58536b1aa0e724
9 files changed
tree: 19138d36dc01aae326c26445604fc4ab6bdb27a5
  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