File label-install of Package kvm-container
#!/bin/sh -eu
# This is the install script for kvm when run in a privileged
# container.
cd /
PATH="/usr/bin:/usr/sbin"
CONTAINER=kvm-container
# ETC
MAINFON=${CONTAINER}-functions
MAINCONF=${CONTAINER}.conf
# BIN
VIRSHSCRIPT=virsh
MANAGESCRIPT=${CONTAINER}-manage.sh
VIRTINSTALLDEMO=virt-install-demo.sh
VIRTINSTALL=virt-install
VIRTMANAGER=virt-manager
echo "LABEL INSTALL"
# ensure all scripts will be present on the host
copy_to_usr_local_bin() {
SCRIPT=$1
if [ ! -e /host/usr/local/bin/${SCRIPT} ]; then
echo "copy /container/${SCRIPT} in /host/usr/local/bin/"
cp -av /container/${SCRIPT} /host/usr/local/bin/
# ensure the script is executable in bin dir
chmod 755 /host/usr/local/bin/${SCRIPT}
else
echo "/host/usr/local/bin/${SCRIPT} already exist, will not update it"
fi
}
copy_to_etc() {
CONF=$1
if [ ! -e /host/etc/${CONF} ]; then
echo "copy /container/${CONF} in /host/etc/"
cp -av /container/${CONF} /host/etc/
else
echo "/host/etc/${CONF} already exist, will not update it"
fi
}
## MAIN
# For podman, cp a systemd unit for starting on boot
if [ ! -e /host/etc/systemd/system/libvirtd.service ]; then
mkdir -p /host/etc/systemd/system/
cp -pv /container/libvirtd.service /host/etc/systemd/system/
else
echo "/host/etc/systemd/system/libvirtd.service already exist"
fi
copy_to_etc ${MAINCONF}
copy_to_etc ${MAINFON}
cp -vf /container/tmpfs_libvirt.conf /host/etc/tmpfiles.d/libvirtd.conf
copy_to_usr_local_bin ${VIRTINSTALLDEMO}
copy_to_usr_local_bin ${MANAGESCRIPT}
copy_to_usr_local_bin ${VIRSHSCRIPT}
copy_to_usr_local_bin ${VIRTINSTALL}
copy_to_usr_local_bin ${VIRTMANAGER}
copy_to_usr_local_bin virt-scenario
copy_to_usr_local_bin pvirsh
copy_to_usr_local_bin virt-xml-validate
# save the image path for the container that was used to run the install
# as the default container image to use for the libvirtd service. The
# image path to use should be available in the IMAGE environment variable.
echo "IMAGE=${IMAGE}" > /host/etc/default/${CONTAINER}