diff --git a/doc/source/install/configure-pxe.rst b/doc/source/install/configure-pxe.rst index 59346ce140..863ff15497 100644 --- a/doc/source/install/configure-pxe.rst +++ b/doc/source/install/configure-pxe.rst @@ -169,71 +169,6 @@ the PXE UEFI environment. for them. Please check :doc:`../admin/drivers` for information on whether your driver requires manual UEFI configuration. - -Legacy BIOS - Syslinux setup ----------------------------- - -In order to deploy instances with PXE on bare metal using Legacy BIOS boot -mode, perform these additional steps on the ironic conductor node. - -#. Install the syslinux package with the PXE boot images: - - Ubuntu (16.04LTS and later):: - - sudo apt-get install syslinux-common pxelinux - - RHEL8/CentOS8/Fedora:: - - sudo dnf install syslinux-tftpboot - - SUSE:: - - sudo zypper install syslinux - -#. Copy the PXE image to ``/tftpboot``. The PXE image might be found at [1]_: - - Ubuntu (16.04LTS and later):: - - sudo cp /usr/lib/PXELINUX/pxelinux.0 /tftpboot - - RHEL8/CentOS8/SUSE:: - - sudo cp /usr/share/syslinux/pxelinux.0 /tftpboot - -#. If whole disk images need to be deployed via PXE-netboot, copy the - chain.c32 image to ``/tftpboot`` to support it: - - Ubuntu (16.04LTS and later):: - - sudo cp /usr/lib/syslinux/modules/bios/chain.c32 /tftpboot - - Fedora:: - - sudo cp /boot/extlinux/chain.c32 /tftpboot - - RHEL8/CentOS8/SUSE:: - - sudo cp /usr/share/syslinux/chain.c32 /tftpboot/ - -#. If the version of syslinux is **greater than** 4 we also need to make sure - that we copy the library modules into the ``/tftpboot`` directory [2]_ - [1]_. For example, for Ubuntu run:: - - sudo cp /usr/lib/syslinux/modules/*/ldlinux.* /tftpboot - -#. Update the bare metal node with ``boot_mode:bios`` capability in - node's properties field. See :ref:`boot_mode_support` for details. - -#. Make sure that bare metal node is configured to boot in Legacy BIOS boot mode - and boot device is set to network/pxe. - -.. [1] On **Fedora/RHEL** the ``syslinux-tftpboot`` package already installs - the library modules and PXE image at ``/tftpboot``. If the TFTP server - is configured to listen to a different directory you should copy the - contents of ``/tftpboot`` to the configured directory -.. [2] http://www.syslinux.org/wiki/index.php/Library_modules - - iPXE setup ---------- @@ -438,18 +373,18 @@ instead. In the following example, since 'x86' and 'x86_64' keys are not in the ``pxe_bootfile_name_by_arch`` or ``pxe_config_template_by_arch`` options, x86 -and x86_64 nodes will be deployed by 'pxelinux.0' or 'bootx64.efi', depending +and x86_64 nodes will be deployed by 'undionly.kpxe' or 'bootx64.efi', depending on the node's ``boot_mode`` capability ('bios' or 'uefi'). However, aarch64 nodes will be deployed by 'grubaa64.efi', and ppc64 nodes by 'bootppc64':: [pxe] # Bootfile DHCP parameter. (string value) - pxe_bootfile_name=pxelinux.0 + pxe_bootfile_name=undionly.kpxe # On ironic-conductor node, template file for PXE # configuration. (string value) - pxe_config_template = $pybasedir/drivers/modules/pxe_config.template + pxe_config_template = $pybasedir/drivers/modules/ipxe_config.template # Bootfile DHCP parameter for UEFI boot mode. (string value) uefi_pxe_bootfile_name=bootx64.efi @@ -478,6 +413,12 @@ nodes will be deployed by 'grubaa64.efi', and ppc64 nodes by 'bootppc64':: iPXE based deployment, and defaults to the same behavior as the comperable ``[pxe]pxe_bootfile_by_arch`` setting for standard PXE. +.. note:: + When booting PowerPC based machines, the firmware loader directly boots + a kernel and ramdisk. It explicitly reads a "pxelinux" style template, + and then directly retrieves the files defined in the file without a + "network boot program". + PXE timeouts tuning ------------------- diff --git a/doc/source/user/architecture.rst b/doc/source/user/architecture.rst index 714c9e16e4..de86f47dea 100644 --- a/doc/source/user/architecture.rst +++ b/doc/source/user/architecture.rst @@ -83,8 +83,8 @@ through the steps involved during the provisioning of a bare metal instance. These pre-requisites must be met before the deployment process: * Dependent packages to be configured on the Bare Metal service node(s) - where ironic-conductor is running like tftp-server, ipmi, syslinux etc for - bare metal provisioning. + where ironic-conductor is running like tftp-server, ipmi, grub/ipxe, etc + for bare metal provisioning. * Nova must be configured to make use of the bare metal service endpoint and compute driver should be configured to use ironic driver on the Nova compute node(s). diff --git a/releasenotes/notes/deprecate-syslinux-support-98d327c67607fc8e.yaml b/releasenotes/notes/deprecate-syslinux-support-98d327c67607fc8e.yaml new file mode 100644 index 0000000000..670047a828 --- /dev/null +++ b/releasenotes/notes/deprecate-syslinux-support-98d327c67607fc8e.yaml @@ -0,0 +1,26 @@ +--- +deprecations: + - | + Support for the `syslinux `_ + and the often separately package `isolinux `_ + and `pxelinux `_. + Legacy BIOS boot loaders, is deprecated and will be removed the future. + This is for two reasons. The first is because it is a BIOS mode bootloader, + and the shift to UEFI booting has reduced the need for these packages. + The second reason is a lack of maintenance, which is ultimately the same + reason Linux distributions are discussing dropping support and packaging. + Syslinux has not been updated since `2019 `_. + Incidently, the file format it utilizes *is* supported by Power hardware, + and that may result in the configuration template remaining in Ironic for + the forseeable future. + - Support for use of `pxelinux `_ + is deprecated due to the deprecation of support for Syslinux. + - Support for virtual media booting with x86 Hardware in Legacy BIOS mode is + deprecated due to the dependency upon + `isolinux `_ + for use of Legacy BIOS boot mode. ``isolinux`` is from the ``syslinux`` + package and source tree. + - Deprecation of ``pxelinux``, as a result of the deprecation of ``syslinux``, + does ultimately mean the default for the ``pxe`` boot_interface to carry + defaults for the use of grub based network booting, specifically for + for operators who are unable to use iPXE.