mirror of
https://github.com/strongswan/strongswan.git
synced 2025-12-16 00:00:28 -05:00
Switch to 'mapped' access mode for hostfs
Passthrough mode only works as expected when running as root. On Debian/Ubuntu systems qemu runs as user 'libvirt-qemu' and group 'kvm' so all shared files must be chowned to grant access from guests. Symlinks created on the host are still problematic because the Plan 9 filesystem has no direct notion of symbolic links, see [1]. [1] - http://ericvh.github.com/9p-rfc/rfc9p2000.u.html
This commit is contained in:
parent
677795c3e7
commit
2c4954ad24
@ -30,7 +30,7 @@
|
|||||||
<controller type='usb' index='0'>
|
<controller type='usb' index='0'>
|
||||||
<address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x2'/>
|
<address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x2'/>
|
||||||
</controller>
|
</controller>
|
||||||
<filesystem type='mount' accessmode='passthrough'>
|
<filesystem type='mount' accessmode='mapped'>
|
||||||
<source dir='/var/run/kvm-swan-hostfs'/>
|
<source dir='/var/run/kvm-swan-hostfs'/>
|
||||||
<target dir='/hostshare'/>
|
<target dir='/hostshare'/>
|
||||||
<address type='pci' domain='0x0000' bus='0x00' slot='0x08' function='0x0'/>
|
<address type='pci' domain='0x0000' bus='0x00' slot='0x08' function='0x0'/>
|
||||||
|
|||||||
@ -30,7 +30,7 @@
|
|||||||
<controller type='usb' index='0'>
|
<controller type='usb' index='0'>
|
||||||
<address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x2'/>
|
<address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x2'/>
|
||||||
</controller>
|
</controller>
|
||||||
<filesystem type='mount' accessmode='passthrough'>
|
<filesystem type='mount' accessmode='mapped'>
|
||||||
<source dir='/var/run/kvm-swan-hostfs'/>
|
<source dir='/var/run/kvm-swan-hostfs'/>
|
||||||
<target dir='/hostshare'/>
|
<target dir='/hostshare'/>
|
||||||
<address type='pci' domain='0x0000' bus='0x00' slot='0x08' function='0x0'/>
|
<address type='pci' domain='0x0000' bus='0x00' slot='0x08' function='0x0'/>
|
||||||
|
|||||||
@ -30,7 +30,7 @@
|
|||||||
<controller type='usb' index='0'>
|
<controller type='usb' index='0'>
|
||||||
<address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x2'/>
|
<address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x2'/>
|
||||||
</controller>
|
</controller>
|
||||||
<filesystem type='mount' accessmode='passthrough'>
|
<filesystem type='mount' accessmode='mapped'>
|
||||||
<source dir='/var/run/kvm-swan-hostfs'/>
|
<source dir='/var/run/kvm-swan-hostfs'/>
|
||||||
<target dir='/hostshare'/>
|
<target dir='/hostshare'/>
|
||||||
<address type='pci' domain='0x0000' bus='0x00' slot='0x08' function='0x0'/>
|
<address type='pci' domain='0x0000' bus='0x00' slot='0x08' function='0x0'/>
|
||||||
|
|||||||
@ -30,7 +30,7 @@
|
|||||||
<controller type='usb' index='0'>
|
<controller type='usb' index='0'>
|
||||||
<address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x2'/>
|
<address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x2'/>
|
||||||
</controller>
|
</controller>
|
||||||
<filesystem type='mount' accessmode='passthrough'>
|
<filesystem type='mount' accessmode='mapped'>
|
||||||
<source dir='/var/run/kvm-swan-hostfs'/>
|
<source dir='/var/run/kvm-swan-hostfs'/>
|
||||||
<target dir='/hostshare'/>
|
<target dir='/hostshare'/>
|
||||||
<address type='pci' domain='0x0000' bus='0x00' slot='0x08' function='0x0'/>
|
<address type='pci' domain='0x0000' bus='0x00' slot='0x08' function='0x0'/>
|
||||||
|
|||||||
@ -30,7 +30,7 @@
|
|||||||
<controller type='usb' index='0'>
|
<controller type='usb' index='0'>
|
||||||
<address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x2'/>
|
<address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x2'/>
|
||||||
</controller>
|
</controller>
|
||||||
<filesystem type='mount' accessmode='passthrough'>
|
<filesystem type='mount' accessmode='mapped'>
|
||||||
<source dir='/var/run/kvm-swan-hostfs'/>
|
<source dir='/var/run/kvm-swan-hostfs'/>
|
||||||
<target dir='/hostshare'/>
|
<target dir='/hostshare'/>
|
||||||
<address type='pci' domain='0x0000' bus='0x00' slot='0x08' function='0x0'/>
|
<address type='pci' domain='0x0000' bus='0x00' slot='0x08' function='0x0'/>
|
||||||
|
|||||||
@ -30,7 +30,7 @@
|
|||||||
<controller type='usb' index='0'>
|
<controller type='usb' index='0'>
|
||||||
<address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x2'/>
|
<address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x2'/>
|
||||||
</controller>
|
</controller>
|
||||||
<filesystem type='mount' accessmode='passthrough'>
|
<filesystem type='mount' accessmode='mapped'>
|
||||||
<source dir='/var/run/kvm-swan-hostfs'/>
|
<source dir='/var/run/kvm-swan-hostfs'/>
|
||||||
<target dir='/hostshare'/>
|
<target dir='/hostshare'/>
|
||||||
<address type='pci' domain='0x0000' bus='0x00' slot='0x08' function='0x0'/>
|
<address type='pci' domain='0x0000' bus='0x00' slot='0x08' function='0x0'/>
|
||||||
|
|||||||
@ -30,7 +30,7 @@
|
|||||||
<controller type='usb' index='0'>
|
<controller type='usb' index='0'>
|
||||||
<address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x2'/>
|
<address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x2'/>
|
||||||
</controller>
|
</controller>
|
||||||
<filesystem type='mount' accessmode='passthrough'>
|
<filesystem type='mount' accessmode='mapped'>
|
||||||
<source dir='/var/run/kvm-swan-hostfs'/>
|
<source dir='/var/run/kvm-swan-hostfs'/>
|
||||||
<target dir='/hostshare'/>
|
<target dir='/hostshare'/>
|
||||||
<address type='pci' domain='0x0000' bus='0x00' slot='0x08' function='0x0'/>
|
<address type='pci' domain='0x0000' bus='0x00' slot='0x08' function='0x0'/>
|
||||||
|
|||||||
@ -30,7 +30,7 @@
|
|||||||
<controller type='usb' index='0'>
|
<controller type='usb' index='0'>
|
||||||
<address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x2'/>
|
<address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x2'/>
|
||||||
</controller>
|
</controller>
|
||||||
<filesystem type='mount' accessmode='passthrough'>
|
<filesystem type='mount' accessmode='mapped'>
|
||||||
<source dir='/var/run/kvm-swan-hostfs'/>
|
<source dir='/var/run/kvm-swan-hostfs'/>
|
||||||
<target dir='/hostshare'/>
|
<target dir='/hostshare'/>
|
||||||
<address type='pci' domain='0x0000' bus='0x00' slot='0x08' function='0x0'/>
|
<address type='pci' domain='0x0000' bus='0x00' slot='0x08' function='0x0'/>
|
||||||
|
|||||||
@ -1 +1 @@
|
|||||||
/hostshare /hostfs 9p trans=virtio,version=9p2000.L 0 0
|
/hostshare /root/shared 9p trans=virtio,version=9p2000.L 0 0
|
||||||
|
|||||||
@ -4,6 +4,7 @@ DIR=$(dirname `readlink -f $0`)
|
|||||||
. $DIR/testing.conf
|
. $DIR/testing.conf
|
||||||
|
|
||||||
rm -f $LOGFILE
|
rm -f $LOGFILE
|
||||||
|
mkdir -p $BUILDDIR
|
||||||
|
|
||||||
if [ $ENABLE_BUILD_BASEIMAGE = "yes" ]
|
if [ $ENABLE_BUILD_BASEIMAGE = "yes" ]
|
||||||
then
|
then
|
||||||
|
|||||||
@ -10,7 +10,6 @@ echo "Building guest kernel version $KERNELVERSION"
|
|||||||
|
|
||||||
check_commands bunzip2 bzcat make wget
|
check_commands bunzip2 bzcat make wget
|
||||||
|
|
||||||
mkdir -p $BUILDDIR
|
|
||||||
cd $BUILDDIR
|
cd $BUILDDIR
|
||||||
|
|
||||||
if [ ! -f "$KERNELTARBALL" ]
|
if [ ! -f "$KERNELTARBALL" ]
|
||||||
|
|||||||
@ -28,7 +28,7 @@ check_commands partprobe qemu-img qemu-nbd
|
|||||||
load_qemu_nbd
|
load_qemu_nbd
|
||||||
|
|
||||||
mkdir -p $LOOPDIR
|
mkdir -p $LOOPDIR
|
||||||
mkdir -p $ROOTIMGCOMPILEDIR
|
mkdir -p $SHAREDDIR/compile
|
||||||
mkdir -p $IMGDIR
|
mkdir -p $IMGDIR
|
||||||
|
|
||||||
log_action "Creating root image $ROOTIMG"
|
log_action "Creating root image $ROOTIMG"
|
||||||
@ -47,24 +47,21 @@ log_action "Mounting proc filesystem to $LOOPDIR/proc"
|
|||||||
execute "mount -t proc none $LOOPDIR/proc"
|
execute "mount -t proc none $LOOPDIR/proc"
|
||||||
do_on_exit umount $LOOPDIR/proc
|
do_on_exit umount $LOOPDIR/proc
|
||||||
|
|
||||||
mkdir -p $LOOPDIR/root/compile
|
mkdir -p $LOOPDIR/root/shared
|
||||||
log_action "Mounting $ROOTIMGCOMPILEDIR as /root/compile"
|
log_action "Mounting $SHAREDDIR as /root/shared"
|
||||||
execute "mount -o bind $ROOTIMGCOMPILEDIR $LOOPDIR/root/compile"
|
execute "mount -o bind $SHAREDDIR $LOOPDIR/root/shared"
|
||||||
do_on_exit rm -r $LOOPDIR/root/compile
|
do_on_exit umount $LOOPDIR/root/shared
|
||||||
do_on_exit umount $LOOPDIR/root/compile
|
|
||||||
|
|
||||||
echo "Installing software from source"
|
echo "Installing software from source"
|
||||||
RECPDIR=$DIR/recipes
|
RECPDIR=$DIR/recipes
|
||||||
RECIPES=`ls $RECPDIR/*.mk | xargs -n1 basename`
|
RECIPES=`ls $RECPDIR/*.mk | xargs -n1 basename`
|
||||||
execute "cp -r $RECPDIR/patches $LOOPDIR/root/compile" 0
|
execute "cp -r $RECPDIR/patches $LOOPDIR/root/shared/compile" 0
|
||||||
for r in $RECIPES
|
for r in $RECIPES
|
||||||
do
|
do
|
||||||
cp $RECPDIR/$r ${LOOPDIR}/root/compile
|
cp $RECPDIR/$r ${LOOPDIR}/root/shared/compile
|
||||||
log_action "Installing from recipe $r"
|
log_action "Installing from recipe $r"
|
||||||
execute_chroot "make SWANVERSION=$SWANVERSION -C /root/compile -f $r"
|
execute_chroot "make SWANVERSION=$SWANVERSION -C /root/shared/compile -f $r"
|
||||||
done
|
done
|
||||||
|
|
||||||
log_action "Removing /etc/resolv.conf"
|
log_action "Removing /etc/resolv.conf"
|
||||||
execute "rm -f $LOOPDIR/etc/resolv.conf"
|
execute "rm -f $LOOPDIR/etc/resolv.conf"
|
||||||
|
|
||||||
mkdir -p $LOOPDIR/hostfs
|
|
||||||
|
|||||||
@ -19,8 +19,9 @@ check_commands virsh
|
|||||||
log_action "Deploying kernel $KERNEL"
|
log_action "Deploying kernel $KERNEL"
|
||||||
execute "ln -fs $KNLSRC $KNLTARGET"
|
execute "ln -fs $KNLSRC $KNLTARGET"
|
||||||
|
|
||||||
log_action "Deploying $ROOTIMGCOMPILEDIR as hostfs"
|
log_action "Deploying $SHAREDDIR as hostfs"
|
||||||
execute "ln -Tfs $ROOTIMGCOMPILEDIR $HOSTFSTARGET"
|
execute "chown -R $KVMUSER:$KVMGROUP $SHAREDDIR" 0
|
||||||
|
execute "ln -Tfs $SHAREDDIR $HOSTFSTARGET"
|
||||||
|
|
||||||
for net in $NETWORKS
|
for net in $NETWORKS
|
||||||
do
|
do
|
||||||
|
|||||||
@ -29,6 +29,8 @@ SWANVERSION=5.0.2dr4
|
|||||||
|
|
||||||
# Build directory where the guest kernel and images will be built
|
# Build directory where the guest kernel and images will be built
|
||||||
BUILDDIR=$TESTDIR/build
|
BUILDDIR=$TESTDIR/build
|
||||||
|
# Directory shared between host and guests
|
||||||
|
SHAREDDIR=$BUILDDIR/shared
|
||||||
|
|
||||||
# Logfile
|
# Logfile
|
||||||
LOGFILE=$BUILDDIR/testing.log
|
LOGFILE=$BUILDDIR/testing.log
|
||||||
@ -52,12 +54,13 @@ BASEIMGMIRROR=http://cdn.debian.net/debian
|
|||||||
# The root image is the origin of all guest images. It is a clone of the base
|
# The root image is the origin of all guest images. It is a clone of the base
|
||||||
# image and contains additional test-specific software and patches.
|
# image and contains additional test-specific software and patches.
|
||||||
ROOTIMG=$IMGDIR/root.$IMGEXT
|
ROOTIMG=$IMGDIR/root.$IMGEXT
|
||||||
ROOTIMGCOMPILEDIR=$BUILDDIR/compile
|
|
||||||
|
|
||||||
# libvirt config
|
# libvirt config
|
||||||
NBDEV=/dev/nbd0
|
NBDEV=/dev/nbd0
|
||||||
NBDPARTITION=${NBDEV}p1
|
NBDPARTITION=${NBDEV}p1
|
||||||
VIRTIMGSTORE=/var/lib/libvirt/images
|
VIRTIMGSTORE=/var/lib/libvirt/images
|
||||||
|
KVMUSER=libvirt-qemu
|
||||||
|
KVMGROUP=kvm
|
||||||
|
|
||||||
# Directory where test results will be stored
|
# Directory where test results will be stored
|
||||||
TESTRESULTSDIR=$TESTDIR/testresults
|
TESTRESULTSDIR=$TESTDIR/testresults
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user