From d169bd55aee58222eed74d97f5b7e91dea57a4e0 Mon Sep 17 00:00:00 2001 From: Dirk von Suchodoletz Date: Fri, 6 Mar 2009 01:20:47 +0000 Subject: More on qemukvm plugin: Fixes, network shutdown script, ... git-svn-id: http://svn.openslx.org/svn/openslx/openslx/trunk@2687 95ad53e4-c205-0410-b2fa-d234c58c8868 --- .../plugins/qemukvm/OpenSLX/OSPlugin/qemukvm.pm | 2 +- os-plugins/plugins/qemukvm/XX_qemukvm.sh | 8 ++++++-- os-plugins/plugins/qemukvm/files/qemu-ifdown | 22 ++++++++++++++++++++++ os-plugins/plugins/qemukvm/files/qemu-ifup | 10 ++++++---- os-plugins/plugins/qemukvm/files/run-virt.include | 1 + 5 files changed, 36 insertions(+), 7 deletions(-) create mode 100644 os-plugins/plugins/qemukvm/files/qemu-ifdown diff --git a/os-plugins/plugins/qemukvm/OpenSLX/OSPlugin/qemukvm.pm b/os-plugins/plugins/qemukvm/OpenSLX/OSPlugin/qemukvm.pm index dc650293..fe276358 100644 --- a/os-plugins/plugins/qemukvm/OpenSLX/OSPlugin/qemukvm.pm +++ b/os-plugins/plugins/qemukvm/OpenSLX/OSPlugin/qemukvm.pm @@ -121,7 +121,7 @@ sub installationPhase copyFile("$self->{openslxBasePath}/lib/plugins/qemukvm/files/run-virt.include", "$self->{pluginRepositoryPath}/"); # Copy the later /etc/qemu-ifup - copyFile("$self->{openslxBasePath}/lib/plugins/qemukvm/files/qemu-ifup", + copyFile("$self->{openslxBasePath}/lib/plugins/qemukvm/files/qemu-if*", "$self->{pluginRepositoryPath}/"); return; } diff --git a/os-plugins/plugins/qemukvm/XX_qemukvm.sh b/os-plugins/plugins/qemukvm/XX_qemukvm.sh index 81e2b0d3..40bd59ae 100644 --- a/os-plugins/plugins/qemukvm/XX_qemukvm.sh +++ b/os-plugins/plugins/qemukvm/XX_qemukvm.sh @@ -117,9 +117,13 @@ ${qemukvm_imagesrc}." nonfatal # copy the /etc/qemu-ifup script and enable extended rights for running # the emulator via sudo - cp /mnt/opt/openslx/plugin-repo/qemukvm/qemu-ifup /mnt/etc/qemu-ifup + cp /mnt/opt/openslx/plugin-repo/qemukvm/qemu-if* /mnt/etc chmod u+x /mnt/etc/qemu-ifup - echo "ALL ALL=NOPASSWD: $fptoqemu" >>/mnt/etc/sudoers + for qemubin in qemu kvm ; do + qemu="$(binfinder ${qemubin})" + [ -n "${qemu}" ] && \ + echo "ALL ALL=NOPASSWD: ${qemu}" >>/mnt/etc/sudoers + done fi else [ $DEBUGLEVEL -gt 0 ] && echo " * Configuration of qemukvm plugin failed" diff --git a/os-plugins/plugins/qemukvm/files/qemu-ifdown b/os-plugins/plugins/qemukvm/files/qemu-ifdown new file mode 100644 index 00000000..5c16e4b4 --- /dev/null +++ b/os-plugins/plugins/qemukvm/files/qemu-ifdown @@ -0,0 +1,22 @@ +#!/bin/sh +# Copyright (c) 2009 - OpenSLX GmbH +# +# This program is free software distributed under the GPL version 2. +# See http://openslx.org/COPYING +# +# If you have any feedback please consult http://openslx.org/feedback and +# send your suggestions, praise, or complaints to feedback@openslx.org +# +# General information about OpenSLX can be found at http://openslx.org/ +# ----------------------------------------------------------------------------- +# qemu-ifup +# - Script used for network cleanup of qemukvm in Stage4 +# ----------------------------------------------------------------------------- + +# Clean up script +killall udhcpd 2>/dev/null +iptables -t nat -D POSTROUTING -o br0 -j MASQUERADE 2>/dev/null + +# Produce a clean exit status +exit 0 + diff --git a/os-plugins/plugins/qemukvm/files/qemu-ifup b/os-plugins/plugins/qemukvm/files/qemu-ifup index b6b9337c..6f759135 100644 --- a/os-plugins/plugins/qemukvm/files/qemu-ifup +++ b/os-plugins/plugins/qemukvm/files/qemu-ifup @@ -25,21 +25,23 @@ dhcpdcmd="LD_LIBRARY_PATH=/opt/openslx/uclib-rootfs/lib\ case "$1" in tap0) # Adding the tap0 interface to the existing bridge configured in stage3 - eval $brctlcmd addif br0 tap0 + eval ${brctlcmd} addif br0 tap0 ;; tap1) # Configuring DHCP on host tap1 interface and enable IP masquerading mkdir /var/lib/qemu - sed "s,NWIF,tap1,;s,/misc,/qemu," /etc/opt/openslx/udhcpd.qemukvm \ + sed "s,NWIF,tap1,;s,/misc/,/qemu/," /etc/opt/openslx/udhcpd.qemukvm \ >/var/lib/qemu/udhcpd.conf - eval $dhcpdcmd /var/lib/qemu/udhcpd.conf + eval ${dhcpdcmd} /var/lib/qemu/udhcpd.conf echo "1" >/proc/sys/net/ipv4/conf/br0/forwarding echo "1" >/proc/sys/net/ipv4/conf/tap1/forwarding - iptables -t nat -A POSTROUTING -i tap1 -o br0 -j MASQUERADE + iptables -t nat -A POSTROUTING -o br0 -j MASQUERADE ;; tap2) : ;; esac +# Produce a clean exit status +exit 0 diff --git a/os-plugins/plugins/qemukvm/files/run-virt.include b/os-plugins/plugins/qemukvm/files/run-virt.include index 3e2b9490..484fcb6d 100644 --- a/os-plugins/plugins/qemukvm/files/run-virt.include +++ b/os-plugins/plugins/qemukvm/files/run-virt.include @@ -58,5 +58,6 @@ for i in kvm qemu-kvm qemu; do [ -n $VIRTCMD ] && break done [ -n $VIRTCMD ] && { writelog "No qemu/kvm tool found."; exit 1; } +VIRTCMD="sudo $VIRTCMD" VIRTCMDOPTS="${VIRTCMDOPTS} -boot c -alt-grab ${diskfile}" -- cgit v1.2.3-55-g7522