diff options
Diffstat (limited to 'os-plugins/plugins/qemukvm/files')
-rw-r--r-- | os-plugins/plugins/qemukvm/files/ifdown | 34 | ||||
-rw-r--r-- | os-plugins/plugins/qemukvm/files/ifup | 75 | ||||
-rw-r--r-- | os-plugins/plugins/qemukvm/files/run-virt.include | 306 |
3 files changed, 0 insertions, 415 deletions
diff --git a/os-plugins/plugins/qemukvm/files/ifdown b/os-plugins/plugins/qemukvm/files/ifdown deleted file mode 100644 index e741d9ca..00000000 --- a/os-plugins/plugins/qemukvm/files/ifdown +++ /dev/null @@ -1,34 +0,0 @@ -#!/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/ -# ----------------------------------------------------------------------------- -# ifdown -# - Script used for network cleanup of qemukvm in stage4 -# ----------------------------------------------------------------------------- - -# get VM_ID through tap name -VM_ID=$(echo $1 | grep -oE "0[0-4]$") -QKTMPDIR=/tmp/qemukvm/${USER}/${VM_ID} -touch /tmp/qemukvm/udhcpd.pids -chmod 666 tmp/qemukvm/udhcpd.pids - -case "$1" in - tapnat0*) - # kill udhcpd - cat ${QKTMPDIR}/udhcpd.pid >> /tmp/qemukvm/udhcpd-unused.pid - ;; - taphost0*) - # kill udhcpd - cat ${QKTMPDIR}/udhcpd.pid >> /tmp/qemukvm/udhcpd-unused.pid - ;; -esac - -# Produce a clean exit status -exit 0 diff --git a/os-plugins/plugins/qemukvm/files/ifup b/os-plugins/plugins/qemukvm/files/ifup deleted file mode 100644 index b3218798..00000000 --- a/os-plugins/plugins/qemukvm/files/ifup +++ /dev/null @@ -1,75 +0,0 @@ -#!/bin/sh -# Copyright (c) 2009..2010 - 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/ -# ----------------------------------------------------------------------------- -# ifup -# - Script used for network setup of qemukvm in stage4 -# ----------------------------------------------------------------------------- - -. /etc/opt/openslx/openslx.conf - -PLUGINCONFDIR=${OPENSLX_DEFAULT_CONFDIR}/plugins/qemukvm - -# get VM_ID through tap name -VM_ID=$(echo $1 | grep -oE "0[0-4]$") -QKTMPDIR=/tmp/qemukvm/${USER}/${VM_ID} - -# Use the udhcpcd as DHCP server and brctl as provided by default in OpenSLX -# environments via uclibc-wrapper. -. ${PLUGINCONFDIR}/network.conf - -# Just decide by the virtual network device used which kind of connection -# should be set up (passed in $1): tap0 = bridge, tap1 = nat, tap2 = hostonly. -case "$1" in - tapbridge0*) - sudo ip link set dev $1 up - # TODO: forwarding?, where needed - echo "1" >${QKTMPDIR}/forwarding - sudo cp ${QKTMPDIR}/forwarding /proc/sys/net/ipv4/conf/br0/forwarding - sudo cp ${QKTMPDIR}/forwarding /proc/sys/net/ipv4/conf/$1/forwarding - ;; - tapnat0*) - # Configuring DHCP on host tapnat interface and enable IP masquerading - sudo ip addr add ${nataddress} dev $1 - sudo ip link set dev $1 up - # TODO: forwarding?, where needed - echo "1" >${QKTMPDIR}/forwarding - sudo cp ${QKTMPDIR}/forwarding /proc/sys/net/ipv4/conf/br0/forwarding - sudo cp ${QKTMPDIR}/forwarding /proc/sys/net/ipv4/conf/$1/forwarding - # TODO: we use here atatic address, maybe change later - sed -e "s,NWIF,$1,;s,CNETWORK,192.168.1${VM_ID}," \ - -e "s,PIDFILE,${QKTMPDIR}/udhcpd.pid," \ - -e "s,LEASEFILE,${QKTMPDIR}/udhcpd.leases," \ - ${OPENSLX_DEFAULT_CONFDIR}/udhcpd.conf \ - >${QKTMPDIR}/udhcpd.conf - touch ${QKTMPDIR}/udhcpd.leases - sudo /opt/openslx/uclib-rootfs/usr/sbin/udhcpd \ - -S ${QKTMPDIR}/udhcpd.conf - # iptables -t nat -A POSTROUTING -o br0 -j MASQUERADE - ;; - taphost0*) - # Configuring DHCP on host taphost interface - sudo ip addr add ${hoaddress} dev $1 - sudo ip link set dev $1 up - # TODO: forwarding?, where needed - echo "1" >${QKTMPDIR}/forwarding - sudo cp ${QKTMPDIR}/forwarding /proc/sys/net/ipv4/conf/br0/forwarding - sudo cp ${QKTMPDIR}/forwarding /proc/sys/net/ipv4/conf/$1/forwarding - sed -e "s,NWIF,$1,;s,USER,${USER},;s,CNETWORK,192.168.1${VM_ID}," \ - -e "s,PIDFILE,${QKTMPDIR}/udhcpd.pid," \ - -e "s,LEASEFILE,${QKTMPDIR}/udhcpd.leases," \ - ${OPENSLX_DEFAULT_CONFDIR}/udhcpd.conf >${QKTMPDIR}/udhcpd.conf - touch ${QKTMPDIR}/udhcpd.leases - sudo /opt/openslx/uclib-rootfs/usr/sbin/udhcpd \ - -S ${QKTMPDIR}/udhcpd.conf - ;; -esac - -exit 0 diff --git a/os-plugins/plugins/qemukvm/files/run-virt.include b/os-plugins/plugins/qemukvm/files/run-virt.include deleted file mode 100644 index 02c70469..00000000 --- a/os-plugins/plugins/qemukvm/files/run-virt.include +++ /dev/null @@ -1,306 +0,0 @@ -# run-virt.include -# ----------------------------------------------------------------------------- -# Copyright (c) 2009..2010 - RZ Uni Freiburg -# Copyright (c) 2009..2010 - OpenSLX GmbH -# -# This program/file 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 feedback to feedback@openslx.org -# -# General information about OpenSLX can be found at http://openslx.org -# ----------------------------------------------------------------------------- -# run-virt.include -# - Include script for running the QEMU/Linux KVM virtual machine on an -# OpenSLX client via the run-virt.sh or run-vmgrid.sh -################################################################################ - -################################################################################ -### Include general configuration -################################################################################ -if [ -f ${OPENSLX_DEFAULT_CONFDIR}/plugins/${self}/${self}.conf ]; then - . ${OPENSLX_DEFAULT_CONFDIR}/plugins/${self}/${self}.conf -else - writelog "Problems reading config file of ${self} plugin" - # TODO: exit wenn conf wichtig - #exit 1 -fi - -################################################################################ -### Declaration of default variables -################################################################################ - -PLUGINCONFQK="${PLUGINCONFROOT}/${self}" -PLUGINDIRQK=${OPENSLX_DEFAULT_DIR}/plugin-repo/${self} -# create TMPDIR for all users -mkdir -m 1777 /tmp/${self} 2>/dev/null -# TMPDIR -QKTMPDIR="/tmp/${self}/${USER}/${VM_ID}" -# define dirs and files which can be removed after exit, be carefull! -RMDIRS="${QKTMPDIR}" -rm -rf ${RMDIRS} 2>/dev/null -mkdir -m 1777 -p ${QKTMPDIR} 2>/dev/null -# vmpath is the path to the vm, here an image (img|qcow*|vmdk) -diskfile=${vmpath} - -# check the file type -if echo ${imgname} | grep -iE "img|qcow|vmdk" >/dev/null 2>&1; then - imgtype=$(echo ${imgname##*.} | tr [a-z] [A-Z]) -else - writelog "${imgname} is not a valid image type (img|qcow*|vmdk), exiting!" - exit 1 -fi - -# hot keys ALT+CTRL+SHIFT -VIRTCMDOPTS="${VIRTCMDOPTS} -alt-grab" - -# display name, remove blanks because of cmdline problems -displayname=$(echo ${displayname} | sed -e "s, ,-,g") -VIRTCMDOPTS="${VIRTCMDOPTS} -name ${displayname}" - -writelog "Directories:" -writelog "\tTMPDIR:\t\t\t$QKTMPDIR" -writelog "Diskimage:" -writelog "\tDisk type:\t\t$imgtype" -writelog "\tDisk file:\t\t$diskfile" - -################################################################################ -### Hardware checks -################################################################################ - -# memory part equal to vmware plugin -# percentage of memory to use for virtualbox in standard case -if [ -n "${forcemem}" ]; then - mem="${forcemem}" -else - permem=30 - if [ "${totalmem}" -ge "1600" ]; then - permem=40 - fi -# # check if /tmp is on harddisk -# if grep -qe "/dev/.* /tmp " /proc/mounts ; then -# permem=60 -# id44="1" -# # Hack, if more than 2,5G RAM use 40% of Ram and write vmem into Ram as well -# # (40% vmware | 40% confdir(vmem...) | 20% host -# # VMplayer 2+ issue -# # TODO: makes this sense for vbox? -# #if [ "${totalmem}" -ge "2500" ]; then -# #permem=40 -# #rmdir ${snapshotdir} -# #snapshotdirold=${snapshotdir} -# #snapshotdir=/dev/shm/${self}/${USER}/${VM_ID} -# #mkdir -p ${snapshotdir} -# #ln -sf ${snapshotdir} ${snapshotdirold} -# #fi -# fi - mem=$(expr ${totalmem} / 100 \* ${permem}) - if [ "${id44}" = "1" ]; then - memhost=$(expr ${totalmem} - ${mem}) - else - memhost=$(expr ${totalmem} - ${mem} - ${mem}) - fi - # static first - permem=50 - mem=$(expr ${totalmem} / 100 \* ${permem}) - if [ "${mem}" -lt "256" ] || [ "${memhost}" -lt "256" ]; then - writelog "Memory out of range: ${mem} MB (guest) / ${memhost} MB (host)!" - writelog "Min. 256 MB for host and guest!" - exit 1 - fi -fi - -VIRTCMDOPTS="${VIRTCMDOPTS} -m ${mem}" - -# network adaptor alternatives: rtl8139, pcnet, e1000 -network_card=${network_card:=pcnet} -VIRTCMDOPTS="${VIRTCMDOPTS} -net nic,macaddr=${macaddr},model=${network_card}" - -# define net kind and apply script -qemu_ifscr="script=${PLUGINCONFQK}/ifup,downscript=${PLUGINCONFQK}/ifdown" -case "${network_kind}" in - bridge*) - VIRTCMDOPTS="${VIRTCMDOPTS} -net tap,ifname=tapbridge${VM_ID},${qemu_ifscr}" - sudo /opt/openslx/uclib-rootfs/sbin/tunctl -t tapbridge${VM_ID} -u ${USER} \ - >/dev/null 2>&1 - sudo /opt/openslx/uclib-rootfs/usr/sbin/brctl addif br0 tapbridge${VM_ID} - POSTRUN="/opt/openslx/uclib-rootfs/sbin/tunctl -d tapbridge${VM_ID}" - ;; - nat) - VIRTCMDOPTS="${VIRTCMDOPTS} -net tap,ifname=tapnat${VM_ID},${qemu_ifscr}" - sudo /opt/openslx/uclib-rootfs/sbin/tunctl -t tapnat${VM_ID} -u ${USER} \ - >/dev/null 2>&1 - sudo /opt/openslx/uclib-rootfs/usr/sbin/brctl addif br0 tapnat${VM_ID} - POSTRUN="/opt/openslx/uclib-rootfs/sbin/tunctl -d tapnat${VM_ID}" - ;; - host*) - VIRTCMDOPTS="${VIRTCMDOPTS} -net tap,ifname=taphost${VM_ID},${qemu_ifscr}" - sudo /opt/openslx/uclib-rootfs/sbin/tunctl -t taphost${VM_ID} -u ${USER} \ - >/dev/null 2>&1 - sudo /opt/openslx/uclib-rootfs/usr/sbin/brctl addif br0 taphost${VM_ID} - POSTRUN="/opt/openslx/uclib-rootfs/sbin/tunctl -d taphost${VM_ID}" - ;; - *) - network_kind="user" - VIRTCMDOPTS="${VIRTCMDOPTS} -net user" - ;; -esac - -# translate boot, use if set else set to HardDisk -if [ -n "${boot}" ]; then - case ${boot} in - n*) # usually support for a,c,d,n, stands for Floppy, HD, CD-ROM, Network - boot="n" - # TODO: does not work yet, can be removed if tap1 solution better - if [ "${network_kind}" = "user" ] && [ -n "${virtualbox_tftpdir}" ]; then - VIRTCMDOPTS="${VIRTCMDOPTS},tftp=${virtualbox_tftpdir}" - fi - ;; - # later maybe c|disk|hd*|sd*) for HD and d|cd*) for CD-ROM - *) - boot="c" - ;; - esac -else - boot="c" -fi - -# external GUI port -vncport="590${VM_ID}" - -# TODO: most of the following does not make much sense yet ... -# virtual fd/cd/dvd and drive devices, floppy b: for configuration -# if $floppy_0 from run-virt.include set then fdtest="TRUE" -fdtest= -fdtest=${floppy_0:+"TRUE"} -# if $fdtest not set floppy0="FALSE", else "TRUE" -floppy0=${fdtest:-"FALSE"} -floppy1="TRUE" -floppy1name="/var/lib/virt/vmchooser/loopimg/fd.img" -# if $cdrom_0 from run-virt.include set then cdtest="TRUE" -cdtest= -cdtest=${cdrom_0:+"TRUE"} -# if $cdtest not set cdrom0="FALSE", else "TRUE" -cdrom0=${cdtest:-"FALSE"} -# if $cdrom_1 from run-virt.include set then cdtest="TRUE" -cdtest= -cdtest=${cdrom_1:+"TRUE"} -# if $cdtest not set cdrom1="FALSE", else "TRUE" -cdrom1=${cdtest:-"FALSE"} -# ide is expected default, test for the virtual disk image type should -# be done while creating the runscripts ... -ide="TRUE" -hddrv="ide" - -# TODO: nur bei vmchooser -#VIRTCMDOPTS="${VIRTCMDOPTS} -fda /dev/fd0" -#VIRTCMDOPTS="${VIRTCMDOPTS} -fdb ${floppy1name}" - -# audio -VIRTCMDOPTS="${VIRTCMDOPTS} -soundhw all" - -# serial -#VIRTCMDOPTS="${VIRTCMDOPTS} -serial /dev/ttyS0" - -writelog "Virtual Hardware:" -writelog "\tGuest RAM:\t\t${mem} MB" -# echo nur wenn memhost gesetzt -[ -n "${memhost}" ] && writelog "\tHost RAM:\t\t${memhost} MB" -writelog "\tMAC address:\t\t$macaddr" -writelog "\tNetwork card:\t\t${network_card}" -writelog "\tNetwork kind:\t\t${network_kind}" -#writelog "\tCD-ROM1:\t${cdrom0}" -#writelog "\tCD-ROM2:\t${cdrom1}" -#writelog "\tFloppy_A:\t${floppy0}" -#writelog "\tFloppy_B:\t${floppy1}" -#writelog "\tShared Folders 'home':\t/home/${USER}" - -################################################################################ -### finally set env for run-virt.sh -################################################################################ - -# TODO: besser drive statt hda? -#-drive [file=file][,if=type][,bus=n][,unit=m][,media=d][,index=i] -# [,cyls=c,heads=h,secs=s[,trans=t]][,snapshot=on|off] -# [,cache=writethrough|writeback|none][,format=f][,serial=s] -# [,boot=on|off] -#-snapshot write to temporary files instead of disk image files -#-usb enable the USB driver (will be the default soon) -#-usbdevice name add the host or guest USB device 'name' -#-nographic disable graphical output and redirect serial I/Os to console -#-vga [std|cirrus|vmware|none] select video card type -#-vnc display start a VNC server on display -#-tftp dir allow tftp access to files in dir [-net user] -#-bootp file advertise file in BOOTP replies -#-no-fd-bootchk disable boot signature checking for floppy disks -#-no-acpi disable ACPI -#-kernel bzImage use 'bzImage' as kernel image -#-append cmdline use 'cmdline' as kernel command line -#-initrd file use 'file' as initial ram disk -#-serial dev redirect the serial port to char device 'dev' -#-parallel dev redirect the parallel port to char device 'dev' -#-monitor dev redirect the monitor to char device 'dev' -#-pidfile file write PID to 'file' -#-d item1,... output log to /tmp/qemu.log (use -d ? for a list of log items) -#-L path set the directory for the BIOS, VGA BIOS and keymaps -#-bios file set the filename for the BIOS -#-no-kvm disable KVM hardware virtualization -#-enable-nesting enable support for running a VM inside the VM (AMD only) -#-no-reboot exit instead of rebooting -#-no-shutdown stop before shutdown -#-loadvm [tag|id] -# start right away with a saved state (loadvm in monitor) -#-daemonize daemonize QEMU after initializing -#-kvm-shadow-memory megs set the amount of shadow pages to be allocated -#-mem-path set the path to hugetlbfs/tmpfs mounted directory, also -# enables allocation of guest memory with huge pages -#-mem-prealloc toggles preallocation of -mem-path backed physical memory -# at startup. Default is enabled. -#-option-rom rom load a file, rom, into the option ROM space -#-localtime set the real time clock to local time [default=utc] -#-startdate select initial date of the clock -#-icount [N|auto] -# enable virtual instruction counter with 2^N clock ticks per instruction -#-echr chr set terminal escape character instead of ctrl-a -#-virtioconsole c -# set virtio console -#-show-cursor show cursor - -# check for kvm modules -if [ -c /dev/kvm ]; then - for tool in kvm qemu-kvm; do - VIRTCMD=$(which ${tool} 2>/dev/null) - [ -n "$VIRTCMD" ] && break - done -else - VIRTCMD=$(which qemu 2>/dev/null) - writelog "KVM available but /dev/kvm not found!" - writelog "Trying fallback to QEMU emulation." -fi - -if [ -z "${VIRTCMD}" ]; then - writelog "No QEMU/KVM found, exiting!" - rm -rf ${RMDIRS} - exit 1 -elif [ "${VIRTCMD##*/}" = "qemu" ]; then - writelog "User space emulation:\t\t${VIRTCMD}" -else - writelog "User space virtualization:\t${VIRTCMD}" -fi - -# using snapshots -VIRTCMDOPTS="${VIRTCMDOPTS} -snapshot" - -# TODO: boot als var, -boot n, tftp... -VIRTCMDOPTS="${VIRTCMDOPTS} -boot c" - -# set headless mode -# define first, you do not want VIRTCMDOPTS from graphical start -VIRTCMDHL=${VIRTCMD} -VIRTCMDOPTSHL="${VIRTCMDOPTS} -nographic ${diskfile}" - -# graphical start -# vga std/cirrus/vmware? -#VIRTCMDOPTS="${VIRTCMDOPTS} -vga std -full-screen ${diskfile}" -VIRTCMDOPTS="${VIRTCMDOPTS} ${diskfile}" |