
Take a publisher ID and match it for mounting configuration drives to prevent the wrong device from being used. Change-Id: Iafa77d9213eba864ca6dfa2d56d294e6ef4d2cd4
74 lines
2.4 KiB
Bash
Executable File
74 lines
2.4 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
if [ "${DIB_DEBUG_TRACE:-0}" -gt 0 ]; then
|
|
set -x
|
|
fi
|
|
set -eu
|
|
set -o pipefail
|
|
|
|
DIB_IPA_ENABLE_RESCUE=${DIB_IPA_ENABLE_RESCUE:-true}
|
|
DIB_IPA_ENABLE_SYSTEMD_NETWORKD=${DIB_IPA_ENABLE_SYSTEMD_NETWORKD:-true}
|
|
|
|
if $DIB_IPA_ENABLE_RESCUE; then
|
|
# Make sure rescue works
|
|
mkdir -p /etc/ipa-rescue-config
|
|
fi
|
|
|
|
case "$DIB_INIT_SYSTEM" in
|
|
upstart)
|
|
if [ -f /etc/init/ufw.conf ]; then
|
|
mv /etc/init/ufw.conf /etc/init/ufw.conf.disabled
|
|
fi
|
|
if [ -f /etc/init/tgt.conf ]; then
|
|
mv /etc/init/tgt.conf /etc/init/tgt.conf.disabled
|
|
fi
|
|
;;
|
|
systemd)
|
|
if [[ $(systemctl --no-pager list-unit-files iptables) =~ 'enabled' ]]; then
|
|
systemctl disable iptables.service
|
|
fi
|
|
systemctl enable $(svc-map ironic-python-agent).service
|
|
if $DIB_IPA_ENABLE_RESCUE; then
|
|
systemctl enable ironic-agent-create-rescue-user.path
|
|
fi
|
|
systemctl enable ironic-agent-resolve-config-drive.service
|
|
# NOTE(rpittau) disable caching remote package index to prevent
|
|
# delays due to failures.
|
|
# This is a new service for dnf-based systems (e.g. Centos8) to speed
|
|
# up subsequent dnf commands, for example automated updates, and
|
|
# it's not really needed in the ipa-ramdisk as we shouldn't install
|
|
# anything during runtime.
|
|
if [[ ${IPA_DISTRO_FAMILY} == 'rh' ]]; then
|
|
if [[ ${YUM} == 'dnf' ]]; then
|
|
systemctl disable dnf-makecache.service
|
|
systemctl disable dnf-makecache.timer
|
|
fi
|
|
fi
|
|
|
|
# NOTE(drannou) debian by default is using networking instead of
|
|
# systemd-networkd. In some usecase like rescue, we need IPA to
|
|
# re-launch dhclient when modifications are made on the interface.
|
|
# The easiest way to manage that is to activate systemd-networkd.
|
|
if $DIB_IPA_ENABLE_SYSTEMD_NETWORKD; then
|
|
if [[ $DISTRO_NAME =~ debian ]] ; then
|
|
rm /etc/network/interfaces
|
|
rm -rf /etc/network/interfaces.d
|
|
echo "[Match]
|
|
Name=en*
|
|
|
|
[Network]
|
|
DHCP=yes" > /etc/systemd/network/99-dhcp.network
|
|
|
|
systemctl enable systemd-networkd
|
|
fi
|
|
fi
|
|
;;
|
|
sysv)
|
|
update-rc.d iptables disable
|
|
;;
|
|
*)
|
|
echo "Unsupported init system"
|
|
exit 1
|
|
;;
|
|
esac
|