diff options
author | Volker Uhrig | 2008-10-15 13:15:00 +0200 |
---|---|---|
committer | Volker Uhrig | 2008-10-15 13:15:00 +0200 |
commit | 4fb7a17fb2bebcf75a6a7cc9837052f946e4d6a5 (patch) | |
tree | e5de9d53460e7ab9ee91fb4e6930f058e894dd22 | |
parent | * minor fixes like ident, kernel modules, removing not needed (diff) | |
download | core-4fb7a17fb2bebcf75a6a7cc9837052f946e4d6a5.tar.gz core-4fb7a17fb2bebcf75a6a7cc9837052f946e4d6a5.tar.xz core-4fb7a17fb2bebcf75a6a7cc9837052f946e4d6a5.zip |
* due of the plugin system, virtualization folder became
deprecated
git-svn-id: http://svn.openslx.org/svn/openslx/openslx/trunk@2315 95ad53e4-c205-0410-b2fa-d234c58c8868
-rw-r--r-- | virtualization/README | 26 | ||||
-rwxr-xr-x | virtualization/menulist-creator | 307 | ||||
-rwxr-xr-x | virtualization/templates/Vorlage_VMwareImageAdministrator.xml | 43 | ||||
-rw-r--r-- | virtualization/templates/client-config.xml.default | 8 | ||||
-rw-r--r-- | virtualization/templates/dhcpd.conf | 22 | ||||
-rw-r--r-- | virtualization/templates/nat.conf | 46 | ||||
-rw-r--r-- | virtualization/templates/nvram.5.0 | bin | 8664 -> 0 bytes | |||
-rw-r--r-- | virtualization/templates/runvmware-v2 | 549 | ||||
-rw-r--r-- | virtualization/templates/xdialog.sh | 30 |
9 files changed, 0 insertions, 1031 deletions
diff --git a/virtualization/README b/virtualization/README deleted file mode 100644 index 578a6c01..00000000 --- a/virtualization/README +++ /dev/null @@ -1,26 +0,0 @@ -rewrite of runvmware and all other scripts needed for virtualisation -with vmware or virtualbox. -Project not finished yet! Everything not enough testet! - -Earlier checkin, cause it was requested. - -Structure and files: -- menulist-creator: - creates desktop entrys, runvmwares runscripts and - xdialog skript for the different Pools from template using - xml files -- templates/runvmware-v2: - runvmware-v2 template, needed by menulist-creator -- templates/Vorlage_VMWareImageAdministrator.xml: - example xml file with verbose description -- templates/xdialog.sh: - template with major program configuration of Xdialog - needed by menulist-creator - -Goal: -- better documentation of source and virtualisation -- easier source, unneeded parts removed -- better understanding for persons who are new to the project, without - reading 1k lines of source -- no complicated vmmenu structure, preventing easy integration of new - features depending on the image diff --git a/virtualization/menulist-creator b/virtualization/menulist-creator deleted file mode 100755 index d0ef2950..00000000 --- a/virtualization/menulist-creator +++ /dev/null @@ -1,307 +0,0 @@ -#!/bin/bash - -################################################################################ -## Creates vmware and vbox (script creation for vbox is not implented yet) -## runscripts from xmlfiles. -## Use template file runvmware-v2 for executeables -## -## -## Structure: -## ${vmdir}/$image.xml configurationfile -## ${vmdir}/$image.vmdk vmware image file -## ${vmdir}/$image.vbox vbox image file -## ${vmdir}/runscripts/$pool/*.vmware vmware runscript -## ${vmdir}/runscripts/$pool/*.vbox virtualbox runscript -## ${vmdir}/xdialog-files/$pool/*.xdialog xdialog menu entrys -## ${vmdir}/xdmsession/$pool/*.desktop .desktop files for xdm, -## if xdm = true in xml -## ${vmdir}/templates/runvmware-v2 image exec template script -################################################################################ - -#TODO: check first if this xml file should be used, if not jump out of the -# while loop. reducee checks and resources - -# Just needed if vmdir is somewhere else -vmdir="." && cd ${vmdir} - -# were is vmdir, after we mountet this folder? -vmexecdir="/var/lib/vmware" - -# template for runvmware -templatevmware="${vmdir}/templates/runvmware-v2" - -# delete all priority files -rm -rf ${vmdir}/xdialog-files/${i}/[0-9]_*.vmware - -# Take all xml files and work with them -for xml in *.xml;do - - # converts the XML file to utf-8, whyever we need that - # inefficient here, because we don't need utf-8 for every xml file - # but most secure place. Else the structure gets screwed. - #TODO: perhaps we can kick out the whole UTF-8 shit, if the admins - # are not able to give us the correct format, we shouldnt fix it - iconv -c -f utf-8 -t utf-8 < ${xml} > ${xml}.utf - - - ############################################################################## - ## get needed information from xml file and check them if needed - ############################################################################## - - - # get image name - image=$(grep -i "<image_name param=\"" ${xml} | awk -F "\"" '{ print $2 }') - - # Test if correct defined - image_type=$(echo ${image}|sed 's%.*\.%%') - if [ "${image_type}" != "vmdk" -a "${image_type}" != "vdi" ]; then - # TODO: Test - echo "PANIC, image is not correct defined in ${xml}." - echo "Image has to end with vdi or vmdk!" - fi - - # Test if image is available - if [ ! -f ../${image} ]; then - echo "PANIC, image defined in ${xml} not available" - fi - - - # get information if the current image should be used - # active when active=1 image, else disabled - active=$(grep -i "<active param=\"true\"" ${xml} | wc -l) - - #TODO: perhaps we should force an active flag, too - - - # get list where the current image should be used - pools=$(grep -i "<pools param=\"" ${xml} | awk -F "\"" '{ print $2 }') - - # we need the pool configuration - if ! [ "${pools}" ]; then - echo "PANIC, pools not correct defined in ${xml}" - fi - - - # Virtualmachine (vmware or virtualbox)? - vm=$(grep -i "<virtualmachine param=\"" ${xml} | awk -F "\"" '{ print $2 }') - # Test if correct defined - if [ "${vm}" != "vbox" -a "${vm}" != "vmware" ]; then - echo "PANIC, virtualmachine not correct defined in ${xml}" - fi - - # Test if vbox and wrong image - if [ "${vm}" = "vbox" -a "${image_type}" != "vdi" ]; then - # TODO: Test - echo "PANIC, virtualmachine vbox cant use image type defined in ${xml}" - fi - - # Test if vmware and wrong image - if [ "${vm}" = "vmware" -a "${image_type}" != "vmdk" ]; then - # TODO: Test - echo "PANIC, virtualmachine vmware cant use image type defined in ${xml}" - fi - - - # Connectiontype of vm (nat or bridged)? - network=$(grep -i "<network param=\"" ${xml} | awk -F "\"" '{ print $2 }') - - # Test if correct defined - if [ "${network}" != "nat" -a "${network}" != "bridged" ]; then - # TODO: test - echo "PANIC, network connection not correct defined in ${xml}" - fi - - - # os running in vmware? - os=$(grep -i "<os param=\"" ${xml} | awk -F "\"" '{ print $2 }') - if [ "${os}" != "Linux" -a "${os}" != "winxppro" -a "${os}" != "Windows 2000" ]; then - # TODO: test - echo "PANIC, OS in virtual machine not correct defined in ${xml}" - fi - - - # get short image description - short_description=$(grep "short_description param=\"" ${xml}.utf | - sed -e "s%&.*;%; %g" | awk -F "\"" '{print $2}') - # if ${short_description} not defined use ${image} - short_description=${short_description:-"${image}"} - - - # Get the long image description - long_description=$(grep "long_description param=\"" ${xml}.utf | - sed -e "s%&.*;%; %g" | awk -F "\"" '{print $2}') - - - # Informations if we need for XDM - xdm=$(grep "xdm param=\"" ${xml} | awk -F "\"" '{print $2}') - - # Test if correct defined - if [ "${xdm}" != "true" -a "${xdm}" != "false" ]; then - # TODO: test - echo "PANIC, XDM usage not correct defined in ${xml}" - fi - - # Get priority, use it for important Images in Xdialog - priority=$(grep "priority param=\"" ${xml} | awk -F "\"" '{print $2}') - - ############################################################################## - ## main part, - ############################################################################## - # Main part, creates desktopentrys and image run scripts - - # TODO: Perhaps its better if we put runscripts, xdmsessions and - # xdialog-files in one big folder with subfolder runscripts, - # xdmsessions, xdialog-files - - # check if ${vmdir}/runscripts/ is available - if [ ! -d ${vmdir}/runscripts ]; then - mkdir ${vmdir}/runscripts - fi - - # check if ${vmdir}/xdmsessions/ for .desktop files is available - if [ ! -d ${vmdir}/xdmsessions ]; then - mkdir ${vmdir}/xdmsessions - fi - - # check if ${vmdir}/xdmsessions/ for .desktop files is available - if [ ! -d ${vmdir}/xdialog-files ]; then - mkdir ${vmdir}/xdialog-files - fi - - # work with the different pools and... - for i in ${pools}; do - # ... make sure we have the different pool directorys, else create it - if [ ! -d ${vmdir}/runscripts/${i} ]; then - mkdir -p ${vmdir}/runscripts/${i} - fi - if [ ! -d ${vmdir}/xdmsessions/${i} ]; then - mkdir -p ${vmdir}/xdmsessions/${i} - fi - if [ ! -d ${vmdir}/xdialog-files/${i} ]; then - mkdir -p ${vmdir}/xdialog-files/${i} - fi - # ... remove startscript, xdmsessions and Xdialog files if it isn't active. - if [ ${active} -ne 1 ]; then - if [ -f ${vmdir}/runscripts/*/${image}.vmware \ - -o -f runscripts/*/${image}.virtualbox ]; then - rm -rf ${vmdir}/runscripts/*/${image}.* - rm -rf ${vmdir}/xdmsessions/*/${image}.desktop - rm -rf ${vmdir}/xdialog-files/*/${image}.xdialog - fi - fi - - - # ... create desktopentry - if [ ${active} -eq 1 -a ${xdm} = "true" ]; then - - # create desktopentry - #echo -e "\nCreating xdm entry for ${image} and pool ${i}\n" - # create the desktopentry - #TODO: change it with < EOF, >> isnt nice for so much lines - echo "Desktop entry for ${image}" \ - >> ${vmdir}/xdmsessions/${i}/${image}.desktop - echo "[Desktop Entry]" > ${vmdir}/xdmsessions/${i}/${image}.desktop - echo "X-SuSE-translate=true" \ - >> ${vmdir}/xdmsessions/${i}/${image}.desktop - echo "Encoding=UTF-8" >> ${vmdir}/xdmsessions/${i}/${image}.desktop - echo "Type=XSession" >> ${vmdir}/xdmsessions/${i}/${image}.desktop - #TODO: Fix path - if [ "${vm}" = "vmware" ];then - echo "Exec=${vmexecdir}/runscripts/${i}/${image}.vmware" \ - >> ${vmdir}/xdmsessions/${i}/${image}.desktop - else # it will be virtualbox - echo "Exec=${vmexecdir}/runscripts/${i}/${image}.virtualbox" \ - >> ${vmdir}/xdmsessions/${i}/${image}.desktop - fi - echo "Name=${short_description}" \ - >> ${vmdir}/xdmsessions/${i}/${image}.desktop - echo "Comment=${comment}" >> ${vmdir}/xdmsessions/${i}/${image}.desktop - #TODO: I dont like SLXGrp as variable herein, why we need it here? - #echo "SLXGrp=${pools}" >> ${vmdir}/xdmsessions/${i}/${image}.desktop - #TODO: do we need XDM configuration? -> Chemie pool - #echo "XDM=${xdm}" >> ${vmdir}/xdmsessions/${i}/${image}.desktop - fi - - - # If we have vmware, build executeable from template and - # Xdialog menu entrys - if [ "${vm}" = "vmware" -a "${active}" -eq 1 ]; then - - # virtualmachine executable form template - sed -e "s/imagename=\"CHANGEIT\"/imagename=\"${image}\"/" \ - -e "s%displayname=\"CHANGEIT\"%displayname=\"${short_description}\"%" \ - -e "s/vmostype=\"CHANGEIT\"/vmostype=\"${os}\"/" \ - -e "s/network=\"CHANGEIT\"/network=\"${network}\"/" \ - ${templatevmware} \ - > ${vmdir}/runscripts/${i}/${image}.vmware - chmod 755 ${vmdir}/runscripts/${i}/${image}.vmware - - - # Xdialog menu entrys - echo -e "\"${vmexecdir}/runscripts/${i}/${image}.vmware\" \\ - \"${short_description}\" \\ - \"${long_description}\" \\" \ - > ${vmdir}/xdialog-files/${i}/${image}.xdialog - - - # If we have a priority defined we rename the file - if [ ${priority} ]; then - mv ${vmdir}/xdialog-files/${i}/${image}.xdialog \ - ${vmdir}/xdialog-files/${i}/${priority}_${image}.xdialog - fi - - - - # if we have virtualbox, part here can only be vbox cause check above - # TODO: i dont like this construction, fix it later - else - if [ "${active}" -eq 0 ];then - echo "${image} isnt enabled" - else - echo "Currently Virtualbox isn't implented" - fi - fi - - done - -done - - -# test if we still have this xml file, else we can delete the old entry -for i in xdmsessions/*/*.desktop; do - # get the name, cut all the folder information and file prefix off - name=$(echo ${i} |sed 's/.*\///' | sed 's/.vmdk.desktop//' | sed 's/.vbox.desktop//' | sed 's/^[0-9]_//') - # if not available as xml delete it - if [ ! -f ${name}.xml ]; then - echo "delete file ./${i}, no matching xml found" - rm -rf ${i} - fi -done - - -# test if we still have this xml file, else we can delete the old entry -for i in xdialog-files/*/*.xdialog; do - # get the name, cut all the folder information and file prefix off - name=$(echo ${i} |sed 's/.*\///' | sed 's/.vmdk.xdialog//' | sed 's/.vbox.xdialog//' | sed 's/^[0-9]_//') - # if not available as xml delete it - if [ ! -f ${name}.xml ]; then - echo "delete file ./${i}, no matching xml found" - rm -rf ${i} - fi -done - - -# Building Xdialog executable for each pool -for i in ${vmdir}/xdialog-files/*; do - cp ${vmdir}/templates/xdialog.sh ${i} - cat ${i}/*.xdialog >> ${i}/xdialog.sh - #closing bracket as last line invoked with \ - echo ")" >> ${i}/xdialog.sh - chmod 755 ${i}/xdialog.sh -done - - -# Delete all .utf files, we dont need them anymore -rm -f *.xml.utf - - diff --git a/virtualization/templates/Vorlage_VMwareImageAdministrator.xml b/virtualization/templates/Vorlage_VMwareImageAdministrator.xml deleted file mode 100755 index e58d829b..00000000 --- a/virtualization/templates/Vorlage_VMwareImageAdministrator.xml +++ /dev/null @@ -1,43 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?>
-<settings>
- <eintrag>
- # Imagename with proper suffix
- <image_name param="Vorlage_VMwareImageAdministrator.vmdk">
- </image_name>
- # Information of the image creator
- <creator param="Your Name">
- </creator>
- <email param="your@email.address.tld">
- </email>
- <phone param="---">
- </phone>
- # Short description, shown in the menu
- <short_description param="Vorlagen-Image">
- </short_description>
- # Define long description shown when the Image is chosen
- <long_description param="Diese Image dient Ihnen als Vorlage für Ihre Installationen. Laden Sie es auf Ihre lokale Festplatte und installieren Sie Ihre Programme!">
- </long_description>
- #os running in vmware, needed for vmware config file
- <os param="Windows XP">
- </os>
- # Network nat or bridged?
- <network param="nat">
- </network>
- # values: vmware or virtualbox
- <virtualmachine param="vmware">
- </virtualmachine>
- #Description: Should the current image in use? if yes value is "true"
- <active param="true">
- </active>
- #Description: where should the current image be used? in the past slxgrp
- <pools param="default chemie">
- </pools>
- #Description: as xdm menu? If yes "true", else "false"
- <xdm param="false">
- </xdm>
- #Description: priority, use a number to get it to a special position
- # should only be used by our department and noone else
- <priority param="1">
- </priority>
- </eintrag>
-</settings>
diff --git a/virtualization/templates/client-config.xml.default b/virtualization/templates/client-config.xml.default deleted file mode 100644 index f1612fc9..00000000 --- a/virtualization/templates/client-config.xml.default +++ /dev/null @@ -1,8 +0,0 @@ -<settings> - <eintrag> - <computername param="HOSTNAME"> - </computername> - <username param="USER"> - </username> - </eintrag> -</settings> diff --git a/virtualization/templates/dhcpd.conf b/virtualization/templates/dhcpd.conf deleted file mode 100644 index 6bc581a4..00000000 --- a/virtualization/templates/dhcpd.conf +++ /dev/null @@ -1,22 +0,0 @@ -# -# Configuration file for ISC 2.0b6pl1 vmnet-dhcpd operating on vmnet8. -# -# This file was automatically generated by the VMware configuration program. -# If you modify it, it will be backed up the next time you run the -# configuration program. -# -# We set domain-name-servers to make some DHCP clients happy -# (dhclient as configued in SuSE, TurboLinux, etc.). -# We also supply a domain name to make pump (Red Hat 6.x) happy. -# -allow unknown-clients; -default-lease-time 1800; # 30 minutes -max-lease-time 7200; # 2 hours - -subnet 192.168.100.0 netmask 255.255.255.0 { - range 192.168.100.100 192.168.100.101; - option broadcast-address 192.168.100.255; - option domain-name-servers 192.168.100.2; - option domain-name "localdomain"; - option routers 192.168.100.2; -} diff --git a/virtualization/templates/nat.conf b/virtualization/templates/nat.conf deleted file mode 100644 index 07d684f0..00000000 --- a/virtualization/templates/nat.conf +++ /dev/null @@ -1,46 +0,0 @@ -# Linux NAT configuration file -[host] -# NAT gateway address -ip = 192.168.100.2 -netmask = 255.255.255.0 -# or ip = 172.16.184.2/24 - -# enable configuration; disabled by default for security reasons -#configport = 33445 - -# VMnet device if not specified on command line -device = /dev/vmnet8 - -# Allow PORT/EPRT FTP commands (they need incoming TCP stream...) -activeFTP = 1 - -# Allows the source to have any OUI. Turn this one if you change the OUI -# in the MAC address of your virtual machines. -#allowAnyOUI = 1 - -[udp] -# Timeout in seconds, 0 = no timeout, default = 60; real value might -# be up to 100% longer -timeout = 60 - -[incomingtcp] -# Use these with care - anyone can enter into your VM through these... - -# FTP (both active and passive FTP is always enabled) -# ftp localhost 8887 -#8887 = 172.16.184.128:21 - -# WEB (make sure that if you are using named webhosting, names point to -# your host, not to guest... And if you are forwarding port other -# than 80 make sure that your server copes with mismatched port -# number in Host: header) -# lynx http://localhost:8888 -#8888 = 172.16.184.128:80 - -# SSH -# ssh -p 8889 root@localhost -#8889 = 172.16.184.128:22 - -[incomingudp] -# UDP port forwarding example -#6000 = 172.16.184.128:6001 diff --git a/virtualization/templates/nvram.5.0 b/virtualization/templates/nvram.5.0 Binary files differdeleted file mode 100644 index 85125f1e..00000000 --- a/virtualization/templates/nvram.5.0 +++ /dev/null diff --git a/virtualization/templates/runvmware-v2 b/virtualization/templates/runvmware-v2 deleted file mode 100644 index 1705318b..00000000 --- a/virtualization/templates/runvmware-v2 +++ /dev/null @@ -1,549 +0,0 @@ -#!/bin/bash -# -# Description: Script for preparing VMware environment Diskless -# X Stations and interactive session chooser (v4) -# -# Author(s): see project authors file -# letzte Änderung Dirk, 15.10. -# Copyright: (c) 2003, 2006 - RZ Universitaet Freiburg -# -# Version: 0.16.611 -# -################################################################################ - - -################################################################################ -## -## Put $HOME to another location -## -################################################################################ - -# We need to change $HOME so it saves everything to /tmp -#export HOME="/tmp/${USER}" -# following mkdir we have now twice in this script... but better twice -# as not seperated. Now its no problem to delete this -# "Put $HOME to another location" section later -#mkdir /tmp/${USER} -#ln -s /home/${USER}/.Xauthority /tmp/${USER}/.Xauthority - - - -### VARIABLES SECTION ########################################################## -## -## declaration of default variables -## -################################################################################ - -## "static" variables only changed within the script - -# The PATH... -export PATH="${PATH}:/var/X11R6/bin:/usr/X11R6/bin" - -# Last two values for MAC address -mac= - -# memory information. permem is value to calculate needed memory -mem= -totalmem= -permem=66 - -# virtual fd/cd/dvd and drive devices, floppy b: for configuration -#floppya is always false, if we have a floppy device or not isn't -#important. -floppya="FALSE" -floppyb="TRUE" -floppybname="/etc/vmware/loopimg/fd.img" -cdr_1="FALSE" -cdr_2="FALSE" -# ide is expected default, test for the virtual disk image type should -# be done while creating the runscripts ... -ide="TRUE" -scsi="FALSE" -hddrv="lsilogic" - -# Displayresolution needed for vmware.config -hostres=$(xvidtune -show 2>/dev/null| grep -ve "^$") -xres=$(echo "${hostres}" | awk '{print $3}') -yres=$(echo "${hostres}" | awk '{print $7}') - -# VMplayer buildversion -vmbuild= - -# VMware start options -#-X = fullscreen -vmopt="-X" - -# temporary disk space for logs, etc... -# use /tmp/vmware/${USER} if /tmp sits on NFS import -export tmpdir=/tmp/${USER} - -# configfile -confile="${tmpdir}/runvmware.conf" - -# users vmware config folder -vmhome="${HOME}/.vmware" -#vmhome="/tmp/${USER}/.vmware" - - -# unknow variables needed vor vmwplayer configuration -confver=8 -hver=4 - -# set hostname: using original hostname and adding string "-vm" -# variable isn't used anywhere in this script. but still works (however) -# TODO: Test it commented out -hostname="VM-${HOST}" - -# Folder of VirtualMachine Images -vmdir="/var/lib/vmware" - -# special Variables, persistence vmware? -#TODO: do we really need it? Should be everywhere nonpersistent -np="independent-nonpersistent" - -######## -## TODO: everything clean till here -######## - -# File if its a link. Stupid crap -#TODO: perhaps we don't need it -rightsfile= -#TODO: don't know what it is for. check later -noimage=0 -# image checking variable -filecheck= - - -## Image depending variables. This values will be changed by the script - -# vmware image file -imagename="CHANGEIT" -diskfile="${vmdir}/${imagename}" - -#TODO: check for a faster way, perhaps we should put this into XML -# oh - yeah!! Why not do it on the SERVER??? It has enough power and has -# to do it once and not during every start on a client :) -#grepping every file could take much (network) resources. And if its -#an IDE Image, but has somewhere the string ddb.adapterType stuff can -#become screwed -# NOOOOOOO - We do not check on every start on every client!!! -# check if IDE or SCSI -#hddrv=$(grep -m 1 -ia "ddb.adapterType" ${diskfile} | awk -F "\"" '{print $2}') -#if [ "${hddrv}" = "ide" ]; then -# ide="TRUE" -# scsi="FALSE" -#elif [ "${hddrv}" = "lsilogic" ]; then -# ide="FALSE" -# scsi="TRUE" -#elif [ "${hddrv}" = "buslogic" ]; then -# ide="FALSE" -# scsi="TRUE" -#fi - -# define name for VMware window -displayname="CHANGEIT" - -# Definition of the client system -vmostype="CHANGEIT" - -# Definition of the client system -network="CHANGEIT" - - -# command line variables -# start with this this default commmand line options + extra -# TODO: defaults laut datei --include /var/lib/vmware/tmpl/winconfig -# --include <includefile> include code right before program start - -# Should we debug? Hell yes, we should always debug! -debug=0 - -#TODO: Bad done... we should do this another way later -last_changes=$(head -n 15 $0 | grep "@" | awk -F ", " '{print $2}' \ - | awk -F "-" '{print $3" "$2" "$1}' | sort -bfnr \ - | awk '{print $3"-"$2"-"$1}' | grep -m 1 [0-9]) -version=$(head -n 15 $0 | grep "# Version: " | awk '{print $3}') - -############# -## TODO: End of uncleaned area -############# - - - - - - -### FUNCTION SECTION ########################################################### -## -## In this script used functions -## -################################################################################ - -### write runvmware.conf ####################################################### -#TODO: only not yet checked function -filecheck () -{ - filecheck=$(LANG=us ls -lh ${diskfile} 2>&1) - writelog "Filecheck:\n${filecheck}\n" - #TODO: don't understand the sence in it - noimage=$(echo ${filecheck} | grep -i "no such file or directory" | wc -l) - rightsfile=${diskfile} - - # check if link - # TODO: mistake with 2nd rightsfile if its in another directory? - if [ -L "${diskfile}" ]; then - # take link target - rightsfile=$(ls -lh ${diskfile} 2>&1 | awk -F "-> *" '{print $2}') - rightsfile=${vmdir}/${rightsfile} - filecheck=$(LANG=us ls -lh ${rightsfile} 2>&1) - fi - - # does file exist - if [ "${noimage}" -ge "1" ]; then - writelog "Vmware Image Problem:\c" - writelog "\tThe image you've specified doesn't exist." - writelog "Filecheck says:\c" - writelog "\t\t${diskfile}:\n\t\t\tNo such file or directory" - writelog "Hint:\c" - writelog "\t\t\tCompare spelling of the image with your options.\n" - exit 1 - fi - - # readable? - if ! [ -r "${diskfile}" >/dev/null 2>&1 \ - -o -r "${diskfile}" >/dev/null 2>&1 ]; then - writelog "Vmware Image Problem:\c" - writelog "\tThe image you've specified has wrong rights." - writelog "Filecheck says:\t\t$(echo ${filecheck} \ - | awk '{print $1" "$3" "$4}') ${rightsfile}" - writelog "Hint:\t\t\tChange rights with: chmod a+r ${rightsfile}\n" - exit 1 - fi - - # writable (for persistent-mode)? - if ! [ -w "${diskfile}" >/dev/null 2>&1 \ - -o -w "${diskfile}" >/dev/null 2>&1 ] \ - && [ "${np}" = "independent-persistent" ]; then - writelog "Vmware Image Problem:\c" - writelog "\tThe image you've specified has wrong rights." - writelog "Filecheck says:\t\t$(echo ${filecheck} \ - | awk '{print $1" "$3" "$4}') ${rightsfile}" - writelog "Hint:\t\t\tUse nonpersistent-mode or change rights to rw\n" - exit 1 - fi -} - - -### write runvmware.conf ####################################################### -runvmwareconfheader () -{ - echo " - ############################################################################## - ###### This configuration file was generated by 'runvmware', ###### - ###### dont use it for your own configurations - it will be overwritten ###### - ###### ###### - - ###### identity ############################################################## - displayName = \"${displayname}\" - guestOS = \"${vmostype}\" - config.version = \"${confver}\" - virtualHW.version = \"${hver}\" - - memsize = \"${mem}\" - numvcpus = \"1\" - - ###### ide-disks ############################################################# - ide0:0.mode = \"${np}\" - ide0:0.present = \"${ide}\" - ide0:0.fileName = \"${diskfile}\" - - ide1:0.present = \"${cdr_1}\" - ide1:0.autodetect = \"TRUE\" - ide1:0.fileName = \"auto detect\" - ide1:0.deviceType = \"cdrom-raw\" - - ide1:1.present = \"${cdr_2}\" - ide1:1.autodetect = \"TRUE\" - ide1:1.fileName = \"auto detect\" - ide1:1.deviceType = \"cdrom-raw\" - - ###### scsi-disks ############################################################ - scsi0.present = \"${scsi}\" - scsi0.virtualDev = \"lsilogic\" - scsi0:0.mode = \"${np}\" - scsi0:0.present = \"${scsi}\" - scsi0:0.fileName = \"${diskfile}\" - - ###### nics ################################################################## - ethernet0.present = \"TRUE\" - ethernet0.addressType = \"static\" - ethernet0.connectionType = \"${network}\" - ethernet0.address = \"00:50:56:0D:${mac}\" - - ###### sound ################################################################# - sound.present = \"TRUE\" - sound.virtualDev = \"es1371\" - - ###### usb ################################################################### - usb.present = \"TRUE\" - usb.generic.autoconnect = \"TRUE\" - - ###### floppies ############################################################## - floppy0.present = \"${floppya}\" - floppy0.fileName = \"auto detect\" - - # we need floppy b: this for our windows client configuration - floppy1.present = \"${floppyb}\" - floppy1.fileType = \"file\" - floppy1.fileName = \"${floppybname}\" - floppy1.startConnected = \"TRUE\" - - ###### ports ################################################################# - parallel0.present = \"FALSE\" - - serial0.present = \"FALSE\" - - ###### shared folders ######################################################## - sharedFolder0.present = \"TRUE\" - sharedFolder0.enabled = \"TRUE\" - sharedFolder0.expiration = \"never\" - sharedFolder0.guestName = \"Home\" - sharedFolder0.hostPath = \"${HOME}\" - sharedFolder0.readAccess = \"TRUE\" - sharedFolder0.writeAccess = \"TRUE\" - sharedFolder.maxNum = \"1\" - - ###### misc ################################################################## - tmpDirectory = \"${tmpdir}\" - mainMem.useNamedFile = \"TRUE\" - snapshot.disabled = \"TRUE\" - tools.syncTime = \"TRUE\" - # use redoLogDir = \"/dev/shm\" if sitting on NFS import - redoLogDir = \"${tmpdir}\" - hints.hideAll = \"TRUE\" - logging = \"FALSE\" - isolation.tools.hgfs.disable = \"FALSE\" - isolation.tools.dnd.disable = \"TRUE\" - isolation.tools.copy.enable = \"TRUE\" - isolation.tools.paste.enabled = \"TRUE\" - gui.restricted = \"TRUE\" - pref.hotkey.shift = \"TRUE\" - pref.hotkey.control = \"TRUE\" - pref.hotkey.alt = \"TRUE\" - svga.maxWidth = \"${xres}\" - svga.maxHeight = \"${yres}\" - " \ - >${confile} - - # set the appropriate permissions for the vmware config file - chmod u+rwx ${confile} >/dev/null 2>&1 -} - - -### creates user configurationfile in ${vmhome} ################################ -preferencesheader () -{ - echo " - ############################################################################## - ###### This configuration file was generated by 'runvmware', ###### - ###### dont use it for your own configurations - it will be overwritten ###### - ###### ###### - ################################## Wichtig! ################################## - ###### *.vmem wird immer angelegt und frisst soviel Speicher, wie fuer ###### - ###### den Gast vorgesehen. Sollte nicht im tempfs liegen. NFS OK, da ###### - ###### IO nur einmal beim Start erheblich. Wird gesteuert ueber ###### - ###### tmpDirectory = /nfs-viel-platz und darin wird dann vmware-\$user ###### - ###### angelegt. ###### - - hints.hideAll = \"true\" - pref.exchangeSelections = \"true\" - pref.hotkey.shift = \"true\" - pref.tip.startup = \"false\" - pref.vmplayer.exit.vmAction = \"poweroff\" - pref.vmplayer.fullscreen.autohide = \"true\" - pref.vmplayer.webUpdateOnStartup = \"false\" - prefvmx.defaultVMPath = \"${vmhome}\" - prefvmx.mru.config = \"${confile}:\" - tmpDirectory = \"${tmpdir}\" - webUpdate.checkPeriod = \"manual\" - pref.eula.size = \"2\" - pref.eula.0.appName = \"VMware Player\" - pref.eula.0.buildNumber = \"${vmbuild}\" - pref.eula.1.appName = \"VMware Workstation\" - pref.eula.1.buildNumber = \"${vmbuild}\" - " \ - >${vmhome}/preferences -} - - -### log function ############################################################### -# function to write to stdout and logfile -writelog () -{ - # write to stdout - echo -e "$1" - - # log in file - echo -e "$1" >>${tmpdir}/runvmware.${USER}.log -} - - - - - - -### MAIN SECTION ############################################################### -## -## Main part of the script... -## -################################################################################ - -# Delete the LOCK file. its unsecure, but ... -rm -f ${tmpdir}/*LOCK >/dev/null 2>&1 - -# create vmware directories -mkdir -p ${tmpdir} >/dev/null 2>&1 -mkdir -p ${vmhome} >/dev/null 2>&1 - -# NO X-server, no runvmware ;) -[ -z "$DISPLAY" ] && echo -e "\n\tStart only within a desktop!\n" && exit 1 - -# logo for console -cat <<EOL - - .----.--.--.-----.--.--.--------.--.--.--.---.-.----.-----. - | _| | | | | | | | | | _ | _| -__| - |__| |_____|__|__|\___/|__|__|__|________|___._|__| |_____| - Script for preparing VMware environment...(v${version}) - - -EOL - - -### CHECK MACHINE SETUP ######################################################## - -## log script information -writelog "##################################################\n" -writelog "# File created by $0 (v.${version})\n# on $(date)\n" -writelog "##################################################\n" -writelog "Starting...$(echo ${np} | sed 's/i.*-//g' \ - | tr [a-z] [A-Z])-mode\n" - -## log disksetup -writelog "Directories: - \tTmpdir:\t\t${tmpdir}\n\tVMhome:\t\t${vmhome}\n\tTmpdir info:\ - \t$(mount | grep -i "/tmp ")\n" - -## configuring MAC address: first four bytes are fixed (00:50:56:0D) the -## last two bytes are taken from the local network adaptor -writelog "Starting hardware / device detection...\c" - -## Get last two MAC values for VMPlayer -# NF = Number of Fields of found values in awk -mac=$(/sbin/ifconfig eth0 | grep eth0 | sed -e "s/ //g" \ - | awk -F ":" '{print $(NF-1)":"$NF}') - - -## check if we have enough free memory - -# get memory in MB -totalmem=$(expr $(grep -i "memtotal" /proc/meminfo | awk '{print $2}') / 1024) - -# calculate memory for vmplayer -# TODO: unhappy how it is calculated -mem=$(expr ${totalmem} / 100 \* ${permem} / 4 \* 4) - -# check memory range -memtest=${totalmem}-128 -if [ "${mem}" -lt "128" ] || [ "${mem}" -gt "${totalmem}" ]; then - writelog "\n\n\tYour memory is out of range: ${mem} MB. - \tMin. 128 MB for host and guest!\n\tTry --mem option.\n" - exit 1 -fi - - -## look for cdrom, dvd and add them to the vm config file -if [ -L /dev/cdrom ] ; then - cdr_1="TRUE" -fi - -if [ -L /dev/cdrom1 ] ; then - cdr_2="TRUE" -fi - - -## Write all results to logfile -writelog "finished\nResults:\n\tMAC:\t\t00:50:56:0D:${mac}\n\tMem:\t\t - ${mem} MB \tMax. res.:\t${xres}x${yres}\n\t\tCD-ROM_1:\t${cdr_1}\n\t - CD-ROM_2:\t${cdr_2}\n" -writelog "finished\nResults:\n\tDiskfile:\t${diskfile}\n\tDisktype:\t${hddrv} - \tVMostype:\t${vmostype}\n\tDisplayname:\t${displayname}\n" - -# check if image exists, etc... -filecheck - -# VMPlayer Version. -# strings is the fastest and most secure way, vmplayer -v takes too much time -# and resources -vmbuild=$(strings /usr/lib/vmware/bin/vmplayer \ - | grep -m 1 "build-"|sed 's/.*build-//') -if [ ! -n ${vmbuild} ]; then - vmbuild=$(vmplayer -v | sed 's/.*build-//') -fi - -### write configuration files ################################################## -# create preferences -preferencesheader - -# create VMware startup file -runvmwareconfheader - -# poolconfiguration config.xml -#TODO: change default to global variable ${POOL} in the future -#comment out cause of scanner... we do it now by hand... just a hack -#TODO: cleaner source... -#sed -e "s/HOSTNAME/${hostname}/" \ -# -e "s/USER/${USER}/" /var/lib/vmware/templates/client-config.xml.default \ -# > /etc/vmware/fd-loop/config.xml -echo "<settings>" > /etc/vmware/fd-loop/config.xml -echo " <eintrag>" >> /etc/vmware/fd-loop/config.xml -echo " <computername param=\"${hostname}\">" >> /etc/vmware/fd-loop/config.xml -echo " </computername>" >> /etc/vmware/fd-loop/config.xml -echo " <username param=\"${USER}\">" >> /etc/vmware/fd-loop/config.xml -echo " </username>" >> /etc/vmware/fd-loop/config.xml -# if we have a scanner, then copy scannerinformation to this xml -sanelines="$(wc -l /etc/sane.d/net.conf|awk '{ print $1 };')" -if [ -f /etc/sane.d/net.conf ] && [ "${sanelines}" -eq 1 ]; then - echo "<scanner param=\"$(cat /etc/sane.d/net.conf)\">" \ - >> /etc/vmware/fd-loop/config.xml - echo "</scanner>" >> /etc/vmware/fd-loop/config.xml -fi -echo " </eintrag>" >> /etc/vmware/fd-loop/config.xml -echo "</settings>" >> /etc/vmware/fd-loop/config.xml - - -# sync is needed to ensure that data is really written to virtual disk -sync - -# own nvram. We need it for floppy drive b, default nvram has just drive a -cp /var/lib/vmware/templates/nvram.5.0 ${tmpdir}/nvram - -# adjust volume -writelog "Unmuting sound...\c" -amixer -q sset Master 28 unmute -amixer -q sset PCM 28 unmute -writelog "finished\n" - -### run vmplayer ############################################################### -# ...with the automatically written config file -if [ $(which vmplayer 2>/dev/null) ]; then writelog "\nStarting VMplayer..." - # run VMplayer - writelog "... vmplayer ${vmopt} ${confile}...\n" - vmplayer ${vmopt} ${confile} 2>&1 >/dev/null -else - writelog "\nNo VMware/VMPlayer found!\n" - exit 1 -fi - -writelog "\nBye.\n" -exit 0 diff --git a/virtualization/templates/xdialog.sh b/virtualization/templates/xdialog.sh deleted file mode 100644 index dd1c5862..00000000 --- a/virtualization/templates/xdialog.sh +++ /dev/null @@ -1,30 +0,0 @@ -#!/bin/sh - -# This script will run Xdialog. menulist-create will add all menu entrys -# from the different .xdialog files -# -#TODO: change path_to_this_script to path of this file. needed, because -# a return will exit Xdialog - - -themesdir="/var/lib/openslx/themes" -res=$(xvidtune -show | grep -wo "\".*\"" | sed "s/\"//g") -if ! [ -f ${themesdir}/bootsplash/images/silent-${res}.jpg ]; then - img=$(ls ${themesdir}/bootsplash/images/ | grep -m 1 "silent") - display -window root ${themesdir}/bootsplash/images/${img} -else - display -window root ${themesdir}/bootsplash/images/silent-${res}.jpg -fi - - -$($(which Xdialog) --rc-file /var/lib/openslx/themes/Xdialog/gtkrc \ - --title "Desktop / VMware-ImageMenu" \ - --screen-center \ - --fill --no-wrap \ - --stdout \ - --no-tags \ - --ok-label "START" \ - --item-help \ - --menubox "Please choose the image you would like to run:" \ - 35 80 0 \ - "/var/X11R6/bin/xdialog.sh" "No Image - Don't press return too fast" "" \ |