Export compile directory to guests
authorReto Buerki <reet@codelabs.ch>
Mon, 17 Dec 2012 18:00:31 +0000 (19:00 +0100)
committerTobias Brunner <tobias@strongswan.org>
Thu, 17 Jan 2013 15:54:58 +0000 (16:54 +0100)
Use 9p over virtio to share files on the host with the guest domains.
The files are accessible in the guests /hostfs directory.

13 files changed:
testing/config/kernel/config-3.5
testing/config/kvm/alice.xml
testing/config/kvm/bob.xml
testing/config/kvm/carol.xml
testing/config/kvm/dave.xml
testing/config/kvm/moon.xml
testing/config/kvm/sun.xml
testing/config/kvm/venus.xml
testing/config/kvm/winnetou.xml
testing/hosts/default/etc/fstab [new file with mode: 0644]
testing/scripts/build-rootimage
testing/start-testing
testing/stop-testing

index e92d0b0..9494331 100644 (file)
@@ -1,6 +1,6 @@
 #
 # Automatically generated file; DO NOT EDIT.
-# Linux/x86_64 3.5.0 Kernel Configuration
+# Linux/x86_64 3.5.3 Kernel Configuration
 #
 CONFIG_64BIT=y
 # CONFIG_X86_32 is not set
@@ -741,7 +741,9 @@ CONFIG_WIRELESS=y
 #
 # CONFIG_WIMAX is not set
 # CONFIG_RFKILL is not set
-# CONFIG_NET_9P is not set
+CONFIG_NET_9P=y
+CONFIG_NET_9P_VIRTIO=y
+# CONFIG_NET_9P_DEBUG is not set
 # CONFIG_CAIF is not set
 # CONFIG_CEPH_LIB is not set
 # CONFIG_NFC is not set
@@ -1385,7 +1387,7 @@ CONFIG_REISERFS_FS=y
 # CONFIG_GFS2_FS is not set
 # CONFIG_BTRFS_FS is not set
 # CONFIG_NILFS2_FS is not set
-# CONFIG_FS_POSIX_ACL is not set
+CONFIG_FS_POSIX_ACL=y
 CONFIG_FILE_LOCKING=y
 CONFIG_FSNOTIFY=y
 CONFIG_DNOTIFY=y
@@ -1464,6 +1466,8 @@ CONFIG_NETWORK_FILESYSTEMS=y
 # CONFIG_NCP_FS is not set
 # CONFIG_CODA_FS is not set
 # CONFIG_AFS_FS is not set
+CONFIG_9P_FS=y
+CONFIG_9P_FS_POSIX_ACL=y
 CONFIG_NLS=y
 CONFIG_NLS_DEFAULT="iso8859-1"
 # CONFIG_NLS_CODEPAGE_437 is not set
index 325e054..21683b8 100644 (file)
     <controller type='usb' index='0'>
       <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x2'/>
     </controller>
+    <filesystem type='mount' accessmode='passthrough'>
+      <source dir='/var/run/kvm-swan-hostfs'/>
+      <target dir='/hostshare'/>
+      <address type='pci' domain='0x0000' bus='0x00' slot='0x08' function='0x0'/>
+    </filesystem>
     <interface type='network'>
       <mac address='52:54:00:9a:e2:de'/>
       <source network='vnet2'/>
index 723825b..e112008 100644 (file)
     <controller type='usb' index='0'>
       <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x2'/>
     </controller>
-    <controller type='sata' index='0'>
-      <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/>
-    </controller>
+    <filesystem type='mount' accessmode='passthrough'>
+      <source dir='/var/run/kvm-swan-hostfs'/>
+      <target dir='/hostshare'/>
+      <address type='pci' domain='0x0000' bus='0x00' slot='0x08' function='0x0'/>
+    </filesystem>
     <interface type='network'>
       <mac address='52:54:00:40:85:6b'/>
       <source network='vnet3'/>
index ec01861..3bd66f1 100644 (file)
     <controller type='usb' index='0'>
       <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x2'/>
     </controller>
-    <controller type='sata' index='0'>
-      <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/>
-    </controller>
+    <filesystem type='mount' accessmode='passthrough'>
+      <source dir='/var/run/kvm-swan-hostfs'/>
+      <target dir='/hostshare'/>
+      <address type='pci' domain='0x0000' bus='0x00' slot='0x08' function='0x0'/>
+    </filesystem>
     <interface type='network'>
       <mac address='52:54:00:ae:f1:f8'/>
       <source network='vnet1'/>
index 0191918..526df28 100644 (file)
     <controller type='usb' index='0'>
       <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x2'/>
     </controller>
-    <controller type='sata' index='0'>
-      <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/>
-    </controller>
+    <filesystem type='mount' accessmode='passthrough'>
+      <source dir='/var/run/kvm-swan-hostfs'/>
+      <target dir='/hostshare'/>
+      <address type='pci' domain='0x0000' bus='0x00' slot='0x08' function='0x0'/>
+    </filesystem>
     <interface type='network'>
       <mac address='52:54:00:b9:15:a9'/>
       <source network='vnet1'/>
index 8e5769d..0492993 100644 (file)
       <driver name='qemu' type='qcow2' cache='writethrough'/>
       <source file='/var/lib/libvirt/images/moon.qcow2'/>
       <target dev='vda' bus='virtio'/>
-      <address type='pci' domain='0x0000' bus='0x00' slot='0x08' function='0x0'/>
+      <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x0'/>
     </disk>
     <controller type='usb' index='0'>
       <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x2'/>
     </controller>
+    <filesystem type='mount' accessmode='passthrough'>
+      <source dir='/var/run/kvm-swan-hostfs'/>
+      <target dir='/hostshare'/>
+      <address type='pci' domain='0x0000' bus='0x00' slot='0x08' function='0x0'/>
+    </filesystem>
     <interface type='network'>
       <mac address='52:54:00:43:e3:35'/>
       <source network='vnet2'/>
index 01fed44..e601298 100644 (file)
       <driver name='qemu' type='qcow2' cache='writethrough'/>
       <source file='/var/lib/libvirt/images/sun.qcow2'/>
       <target dev='vda' bus='virtio'/>
-      <address type='pci' domain='0x0000' bus='0x00' slot='0x08' function='0x0'/>
+      <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x0'/>
     </disk>
     <controller type='usb' index='0'>
       <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x2'/>
     </controller>
+    <filesystem type='mount' accessmode='passthrough'>
+      <source dir='/var/run/kvm-swan-hostfs'/>
+      <target dir='/hostshare'/>
+      <address type='pci' domain='0x0000' bus='0x00' slot='0x08' function='0x0'/>
+    </filesystem>
     <interface type='network'>
       <mac address='52:54:00:77:43:ea'/>
       <source network='vnet1'/>
index 3002e23..bd00aa5 100644 (file)
     <controller type='usb' index='0'>
       <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x2'/>
     </controller>
+    <filesystem type='mount' accessmode='passthrough'>
+      <source dir='/var/run/kvm-swan-hostfs'/>
+      <target dir='/hostshare'/>
+      <address type='pci' domain='0x0000' bus='0x00' slot='0x08' function='0x0'/>
+    </filesystem>
     <interface type='network'>
       <mac address='52:54:00:69:d3:80'/>
       <source network='vnet2'/>
index 3f018f1..a23b248 100644 (file)
     <controller type='usb' index='0'>
       <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x2'/>
     </controller>
+    <filesystem type='mount' accessmode='passthrough'>
+      <source dir='/var/run/kvm-swan-hostfs'/>
+      <target dir='/hostshare'/>
+      <address type='pci' domain='0x0000' bus='0x00' slot='0x08' function='0x0'/>
+    </filesystem>
     <interface type='network'>
       <mac address='52:54:00:4b:23:fa'/>
       <source network='vnet1'/>
diff --git a/testing/hosts/default/etc/fstab b/testing/hosts/default/etc/fstab
new file mode 100644 (file)
index 0000000..1fb00f4
--- /dev/null
@@ -0,0 +1 @@
+/hostshare /hostfs 9p trans=virtio,version=9p2000.L 0 0
index b575ebb..ac9ee8b 100755 (executable)
@@ -48,6 +48,7 @@ do_on_exit umount $LOOPDIR/proc
 mkdir -p $LOOPDIR/root/compile
 log_action "Mounting $ROOTIMGCOMPILEDIR as /root/compile"
 execute "mount -o bind $ROOTIMGCOMPILEDIR $LOOPDIR/root/compile"
+do_on_exit rm -r $LOOPDIR/root/compile
 do_on_exit umount $LOOPDIR/root/compile
 
 echo "Installing software from source"
@@ -63,3 +64,5 @@ done
 
 log_action "Removing /etc/resolv.conf"
 execute "rm -f $LOOPDIR/etc/resolv.conf"
+
+mkdir -p $LOOPDIR/hostfs
index dce089a..e2944bc 100755 (executable)
@@ -6,6 +6,7 @@ NETWORKS="vnet1 vnet2 vnet3"
 CONFDIR=$PWD/config/kvm
 KNLSRC=$BUILDDIR/$KERNEL/arch/x86/boot/bzImage
 KNLTARGET=/var/run/kvm-swan-kernel
+HOSTFSTARGET=/var/run/kvm-swan-hostfs
 
 echo "Starting test environment"
 
@@ -16,6 +17,9 @@ check_commands virsh
 log_action "Deploying kernel $KERNEL"
 execute "ln -fs $KNLSRC $KNLTARGET"
 
+log_action "Deploying $ROOTIMGCOMPILEDIR as hostfs"
+execute "ln -Tfs $ROOTIMGCOMPILEDIR $HOSTFSTARGET"
+
 for net in $NETWORKS
 do
        log_action "Network $net"
index 852e2ec..5695d62 100755 (executable)
@@ -6,6 +6,7 @@ echo "Stopping test environment"
 
 NETWORKS="vnet1 vnet2 vnet3"
 KNLTARGET=/var/run/kvm-swan-kernel
+HOSTFSTARGET=/var/run/kvm-swan-hostfs
 
 [ `id -u` -eq 0 ] || die "You must be root to run $0"
 
@@ -26,3 +27,6 @@ done
 
 log_action "Removing kernel $KERNEL"
 execute "rm $KNLTARGET"
+
+log_action "Removing link to hostfs"
+execute "rm $HOSTFSTARGET"