From d63930e3dd80b313822e9f65a76b9c338ef9e389 Mon Sep 17 00:00:00 2001 From: Will Szumski Date: Thu, 19 Apr 2018 17:36:08 +0100 Subject: copy iPXE NBP to /tftpboot during PXE bootstrap This allows you to chainload iPXE from a standard PXE environment. As the PXE container already has apache installed, we now have everything we need to support iPXE booting. Change-Id: Ide32dc1910e9f8b3ff875238648726f719e271b2 Implements: blueprint ironic-ipxe --- docker/ironic/ironic-pxe/extend_start.sh | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) (limited to 'docker') diff --git a/docker/ironic/ironic-pxe/extend_start.sh b/docker/ironic/ironic-pxe/extend_start.sh index f7297988c..0ba57a834 100644 --- a/docker/ironic/ironic-pxe/extend_start.sh +++ b/docker/ironic/ironic-pxe/extend_start.sh @@ -1,8 +1,7 @@ #!/bin/bash -# Bootstrap and exit if KOLLA_BOOTSTRAP variable is set. This catches all cases -# of the KOLLA_BOOTSTRAP variable being set, including empty. -if [[ "${!KOLLA_BOOTSTRAP[@]}" ]]; then + +function prepare_pxe { chown -R ironic: /tftpboot for pxe_file in /var/lib/tftpboot/pxelinux.0 /var/lib/tftpboot/chain.c32 /usr/lib/syslinux/pxelinux.0 \ /usr/lib/syslinux/chain.c32 /usr/lib/PXELINUX/pxelinux.0 \ @@ -11,6 +10,21 @@ if [[ "${!KOLLA_BOOTSTRAP[@]}" ]]; then cp "$pxe_file" /tftpboot fi done +} + +function prepare_ipxe { + if [[ "${KOLLA_BASE_DISTRO}" =~ debian|ubuntu ]]; then + cp /usr/lib/ipxe/{undionly.kpxe,ipxe.efi} /tftpboot + elif [[ "${KOLLA_BASE_DISTRO}" =~ centos|oraclelinux|rhel ]]; then + cp /usr/share/ipxe/{undionly.kpxe,ipxe.efi} /tftpboot + fi +} + +# Bootstrap and exit if KOLLA_BOOTSTRAP variable is set. This catches all cases +# of the KOLLA_BOOTSTRAP variable being set, including empty. +if [[ "${!KOLLA_BOOTSTRAP[@]}" ]]; then + prepare_pxe + prepare_ipxe exit 0 fi -- cgit v1.2.3