Fix PXE setup for fresh Ubuntu Xenial

Since Ubuntu 15.04 the file 'pxelinux.0' is provided by different
package ('pxelinux') which is not being installed by DevStack.
Extra problem is that this package does not exsit for earlier Ubuntu
versions at all.

More over, while in Trusty 'syslinux' package depends on
'syslinux-common', it only recommends it in Xenial, but we need it
installed as it provides *.c32 modules required for syslinux.

This patch adds 'syslinux-common' and 'pxelinux' to required deb packages
list when distro is 'xenial' or 'jessie' (as this packaging change has
its origin in Debian) by using the distro pinning in the package lists
as supported by DevStack.

Change-Id: I473fc4eb52f28a456c3f6888d5c7b25e8e08be26
Closes-Bug: #1638940
This commit is contained in:
Pavlo Shchelokovskyy
2016-11-18 11:52:50 +02:00
parent ff4c11e71e
commit d21564eaba
2 changed files with 14 additions and 1 deletions

View File

@@ -1,4 +1,15 @@
# apparmor is an undeclared dependency for docker on ubuntu: https://github.com/docker/docker/issues/9745
# Starting with Debian Jessie (and thus in Ubuntu Xenial too),
# pxelinux package provides the pxelinux.0 boot loader,
# but such package is absent from Debian Wheezy / Ubuntu Trusty.
# Also, in Debian Wheezy / Ubuntu Trusty 'syslinux' depends on syslinux-common,
# but only recommends it in Jessie/Xenial.
# Make sure syslinux-common is installed for those distros as it provides
# *.c32 modules for syslinux
# TODO remove distro pinning when Wheezy / Trusty are EOLed (May 2019)
# or DevStack stops supporting those.
# In the mean time, new Debian-based release codenames will have to be added
# as distros can not be pinned with 'if-later-than' specified.
apparmor
docker.io
ipmitool
@@ -9,6 +20,7 @@ libguestfs0
libvirt-bin
open-iscsi
openssh-client
pxelinux # dist:jessie,xenial
python-libguestfs
python-libvirt
qemu
@@ -17,6 +29,7 @@ qemu-utils
sgabios
shellinabox
syslinux
syslinux-common # dist:jessie,xenial
tftpd-hpa
xinetd
squashfs-tools

View File

@@ -551,7 +551,7 @@ function configure_ironic_dirs {
sudo install -d -o $STACK_USER -g $LIBVIRT_GROUP $IRONIC_HTTP_DIR
fi
if [ ! -f $IRONIC_PXE_BOOT_IMAGE ]; then
if [ ! -f "$IRONIC_PXE_BOOT_IMAGE" ]; then
die $LINENO "PXE boot file $IRONIC_PXE_BOOT_IMAGE not found."
fi