Fix libguestfs on Ubuntu
libguestfs does not work on ubuntu because the kernel is not world readable. This breaks file injection with libvirt. See https://bugs.launchpad.net/ubuntu/+source/linux/+bug/759725 for more details. The workaround proposed by Ubuntu is to relax the kernel ACL if needed, so we need to do that in case file injection is enabled on an Ubuntu host running libvirt. Partial-bug: #1646002 Change-Id: I405793b9e145308e51a08710d8e5df720aec6fde
This commit is contained in:
parent
b9f697719b
commit
1c442eebc8
@ -105,6 +105,16 @@ function install_nova_hypervisor {
|
|||||||
if [[ "$ENABLE_FILE_INJECTION" == "True" ]] ; then
|
if [[ "$ENABLE_FILE_INJECTION" == "True" ]] ; then
|
||||||
if is_ubuntu; then
|
if is_ubuntu; then
|
||||||
install_package python-guestfs
|
install_package python-guestfs
|
||||||
|
# NOTE(andreaf) Ubuntu kernel can only be read by root, which breaks libguestfs:
|
||||||
|
# https://bugs.launchpad.net/ubuntu/+source/linux/+bug/759725)
|
||||||
|
INSTALLED_KERNELS="$(ls /boot/vmlinuz-*)"
|
||||||
|
for kernel in $INSTALLED_KERNELS; do
|
||||||
|
STAT_OVERRIDE="root root 644 ${kernel}"
|
||||||
|
# unstack won't remove the statoverride, so make this idempotent
|
||||||
|
if [[ ! $(dpkg-statoverride --list | grep "$STAT_OVERRIDE") ]]; then
|
||||||
|
sudo dpkg-statoverride --add --update $STAT_OVERRIDE
|
||||||
|
fi
|
||||||
|
done
|
||||||
elif is_fedora || is_suse; then
|
elif is_fedora || is_suse; then
|
||||||
install_package python-libguestfs
|
install_package python-libguestfs
|
||||||
fi
|
fi
|
||||||
|
Loading…
Reference in New Issue
Block a user