tripleo-image-elements/elements/nova-baremetal/install.d/80-pxelinux

40 lines
1.0 KiB
Bash
Executable File

#!/bin/bash
set -eux
install-packages syslinux tftpd-hpa xinetd
mkdir -p /tftpboot/pxelinux.cfg/
if [ -f /usr/lib/syslinux/pxelinux.0 ]; then
cp /usr/lib/syslinux/pxelinux.0 /tftpboot/ # Ubuntu
elif [ -f /usr/share/syslinux/pxelinux.0 ]; then
cp /usr/share/syslinux/pxelinux.0 /tftpboot/ # Fedora/RHEL
else
echo "Failed to find pxelinux.0."
exit 1
fi
# Disable the tftp-hpa upstart job, we're using xinetd
[ -f /etc/init/tftpd-hpa.conf ] && echo "manual" > /etc/init/tftpd-hpa.override
# Disable the tftpd-hpa SysV script for the same reason
[ -f /etc/init.d/tftpd-hpa ] && update-rc.d -f tftpd-hpa disable
cat > /etc/xinetd.d/tftp << EOF
service tftp
{
protocol = udp
port = 69
socket_type = dgram
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = --map-file /tftpboot/map-file /tftpboot
disable = no
}
EOF
# Adds support for tftp requests that don't include the directory name.
echo 'r ^([^/]) /tftpboot/\1' > /tftpboot/map-file
os-svc-enable -n xinetd