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:
pxeboot_boot_images
variable for customizing which tools are available.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 hosthostname
: Hostname of the systemiface
: (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/713385serial
: Device serial number, must match value given in SMBIOSmac_address
: MAC address of the network card, colon separated formatDocumentation of the preseed process can be found in these links:
Contents of the preseed file: https://help.ubuntu.com/18.04/installation-guide/amd64/apbs04.html
All preseed configuration options: https://preseed.debian.net/debian-preseed/
iPXE docs on preseed files and kernel arguments: https://ipxe.org/appnote/debian_preseed
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
- hosts: all vars: pxeboot_hosts: - {domain: 'example.com', hostname: 'server1', serial: 'abc123'} - {domain: 'example.com', hostname: 'server2', serial: 'abc123', iface: 'eno2'} roles: - pxeboot
© 2020 Open Networking Foundation support@opennetworking.org License: Apache-2.0