Benutzer-Werkzeuge

Webseiten-Werkzeuge


v_lizedlab

Dies ist eine alte Version des Dokuments!


V'lizedlab

Download

http://proxy.asn-graz.ac.at/~d4e/experimental/

tar xvfj vlizedlab.i586.tar.bz2 -C / 
tar xvfj vlizedlab.x86_64.tar.bz2 -C /
  • PXE Installationsdateien

/srv/tftpboot

  • Skripte (künftig als YaST-Modul)

/opt/s4e/vlizedlab

  • Globale Konfiguration für alle virtuellen Maschinen

/usr/share/vlizedlab/scripts/vb…

  • Beispiel-Konfigurationsdateien für die jeweilige virtuelle Maschine

/vm/vb/Windows7…

Installation via PXE

LABEL vlizedlabclient32
 MENU LABEL V'lizedLab Client 32-bit installieren
 KERNEL /vlizedlab/i386/boot/vmlinuz
 APPEND ip=dhcp boot=live netboot=nfs nfsroot=192.168.100.14:/daten/tftpboot/vlizedlab/i386/ root=/dev/nfs initrd=/vlizedlab/i386/boot/initrd.img FAI_FLAGS="verbose,createvt" FAI_ACTION=install hostname=vlclientde panic=60 vga=788 fb=false nomodeset
 
LABEL vlizedlabclient64
 MENU LABEL V'lizedLab Client 64-bit installieren
 KERNEL /vlizedlab/amd64/boot/vmlinuz
 APPEND ip=dhcp boot=live netboot=nfs nfsroot=192.168.100.14:/daten/tftpboot/vlizedlab/amd64/ root=/dev/nfs initrd=/vlizedlab/amd64/boot/initrd.img FAI_FLAGS="verbose,createvt" FAI_ACTION=install hostname=vlclientde panic=60 vga=788 fb=false nomodeset

Konfiguration

  • Standardbenutzer
    • root : vlizedlab
    • student : student
apt-get update
apt-get install mc vim htop hwinfo screen virtualbox virtualbox-ose hal ntpdate ntfs-3g
apt-get dist-upgrade
apt-get purge linux-headers-3.1.0-1-486 linux-headers-3.1.0-1-686-pae linux-headers-3.1.0-1-common  linux-image-3.1.0-1-486 linux-image-3.1.0-1-686-pae linux-kbuild-3.1 linux-headers-3.2.0-2-486 linux-image-3.2.0-2-486 linux-image-486
vi /etc/default/grub
update-grup
ntpdate bgweiz.at; hwclock -w -u; date
/home/student/.xinitrc
...
exec vlstartvbmachine vb/d4e2012 &
 
exec xterm -fn 9x15bold -title "Virtual Machine Start Menu" -e /usr/share/vlizedlab/scripts/startmenustudent
/usr/share/vlizedlab/scripts/startmenustudent
#!/bin/bash
# normally started as user Student within X
 
VLCOMMON=/usr/share/vlizedlab/scripts/common
if [ -f $VLCOMMON ]; then source $VLCOMMON ; else exit 1; fi
 
TITLE="VlizedlabClient - Bundesgymnasium und Bundesrealgymnasium Weiz - `hostname`"
sleep 1
 
DOEXIT=no
 
while [ "$DOEXIT" != yes ]; do
 
        MENU=""
        NR=1
        for XC in \
   `find $VBHOME -maxdepth 2 -a -type f -a \( -name '*.sh' -o -name '*.vdi' \) -exec dirname {} \; \
    | sort -ru ` ;
        do
           MNAME=`basename $XC`
           MDIR=`dirname $XC`
           MTOOL=`basename $MDIR`
           MENU="$MENU $NR ${MNAME}"
           NR=`expr $NR + 1`
        done
 
        MENU="$MENU u Wechseldatenträger_aushängen x xterm  t Beenden"
 
        choice=`dialog --cr-wrap \
                  --backtitle "$TITLE" \
                  --defaultno \
                  --menu 'Bitte auswählen:' 0 0 0 $MENU 3>&1 1>&2 2>&3`
 
        clear
 
        #echo "Updating Virtual Machine $choice"
 
        case $choice in
           [1-9]|[0-9][0-9])
             VM=""
             NR=1
             for XC in \
   `find $VBHOME -maxdepth 2 -a -type f -a \( -name '*.sh' -o -name '*.vdi' \) -exec dirname {} \; \
    | sort -ru ` ;
             do
               if [ "$NR" = "$choice" ]; then
                  MNAME=`basename $XC`
                  MDIR=`dirname $XC`
                  MTOOL=`basename $MDIR`
               fi
               NR=`expr $NR + 1`
             done
 
             if [ "$MTOOL" = vb ]; then
               vlstartvbmachine $MTOOL/$MNAME
             fi
             echo "waiting..."
             ;;
           um)
             clear
             devmon --unmount-recent
             sleep 2
             ;;
           u)
             clear
             devmon --unmount-all
             sleep 2
             ;;
           vv)
             sudo /usr/sbin/vlviewremote -viewonly
             ;;
           v)
             sudo /usr/sbin/vlviewremote
             ;;
           sr)
             vlsetresolution menu
             ;;
           x)
             xterm -e bash -c "echo 'Logging in as user >student<; Please provide password.'; sudo /bin/login student" &
             ;;
           t)
             DOEXIT=yes
             ;;
        esac
done
/etc/X11/ion3/cfg_ioncore.lua
...
    --kpress(ALTMETA.."F12", "mod_query.query_menu(_, _sub, 'mainmenu', 'Main menu:')"),
    --kpress(ALTMETA.."F12", "mod_menu.menu(_, _sub, 'mainmenu', {big=true})"),
...
    bdoc("Query for manual page to be displayed."),
    --kpress(ALTMETA.."F1", "mod_query.query_man(_, ':man')"),
 
    bdoc("Show the Ion manual page."),
    --kpress(META.."F1", "ioncore.exec_on(_, ':man ion3')"),
 
    bdoc("Run a terminal emulator."),
    --kpress(ALTMETA.."F2", "ioncore.exec_on(_, XTERM or 'x-terminal-emulator')"),
 
    bdoc("Query for command line to execute."),
    --kpress(ALTMETA.."F3", "mod_query.query_exec(_)"),
 
    bdoc("Query for Lua code to execute."),
    --kpress(META.."F3", "mod_query.query_lua(_)"),
 
    bdoc("Query for host to connect to with SSH."),
    --kpress(ALTMETA.."F4", "mod_query.query_ssh(_, ':ssh')"),
 
    bdoc("Query for file to edit."),
    --kpress(ALTMETA.."F5", 
    --       "mod_query.query_editfile(_, 'run-mailcap --action=edit')"),
 
    bdoc("Query for file to view."),
    --kpress(ALTMETA.."F6", 
    --       "mod_query.query_runfile(_, 'run-mailcap --action=view')"),
 
    bdoc("Query for workspace to go to or create a new one."),
    --kpress(ALTMETA.."F9", "mod_query.query_workspace(_)"),
 
    bdoc("Query for a client window to go to."),
    --kpress(META.."G", "mod_query.query_gotoclient(_)"),
 
    bdoc("Display context menu."),
    --kpress(META.."M", "mod_menu.menu(_, _sub, 'ctxmenu')"),
    --kpress(META.."M", "mod_query.query_menu(_, _sub, 'ctxmenu', 'Context menu:')"),
...
/etc/X11/ion3/cfg_defaults.lua
...
--dopath("mod_statusbar")
--dopath("mod_dock")
...
chmod 4755 /usr/lib/dbus-1.0/dbus-daemon-launch-helper
/var/spool/cron/crontabs/root
...
0 20 * * * /sbin/halt

Virtuelle Maschinen

  • Globale Konfiguration:
/usr/share/vlizedlab/scripts/vb.init.default.sh
#!/bin/bash -x
 
VERSION=2
echo "starting MACHINE >$MACHINE< in >$MACHINEDIR<"
 
VBoxManage --nologo createvm --name $MACHINE --register --basefolder $MACHINEDIR
 
VBoxManage --nologo modifyvm $MACHINE --synthcpu on --memory 1536 --vram 21 --pae off --ioapic on --hwvirtex off --bioslogofadein off --bioslogofadeout off --bioslogodisplaytime 1 --nic1 nat --audio alsa --accelerate2dvideo on --accelerate3d on
 
if [ -f $MACHINEDIR/init.add.sh ]; then
    source $MACHINEDIR/init.add.sh
fi
 
( sleep 10 && ( VBoxManage controlvm $MACHINE setvideomodehint 800 600 32 ) ) &

Windows 7

/vm/vb/Windows7/init.add.sh
VBoxManage --nologo modifyvm $MACHINE   --ostype "Windows7"
VBoxManage --nologo modifyvm $MACHINE   --nictype1 "82540EM" --audiocontroller hda
VBoxManage --nologo storagectl    $MACHINE --name C$MACHINE --add sata --controller IntelAHCI --hostiocache on
VBoxManage --nologo sharedfolder add $MACHINE  --name media --hostpath /media --automount
 
mtyp="immutable"
#mtyp="normal"
VBoxManage --nologo storageattach $MACHINE --storagectl C$MACHINE --port 1 --device 0 \
      --type hdd --medium $MACHINEDIR/$MACHINE.vdi --mtype $mtyp
 
#VBoxManage --nologo storageattach $MACHINE --storagectl C$MACHINE --port 1 --device 0 \
#      --type dvddrive --medium $MACHINEDIR/Windows7_AIO.iso

WindowsXP

/vm/vb/WindowsXP/init.add.sh
VBoxManage --nologo modifyvm $MACHINE   --ostype "WindowsXP"
VBoxManage --nologo modifyvm $MACHINE   --nictype1 "Am79C970A" --audiocontroller hda
VBoxManage --nologo storagectl $MACHINE --name C$MACHINE --add ide --controller PIIX4 --hostiocache on
VBoxManage --nologo sharedfolder add $MACHINE  --name media --hostpath /media --automount
 
mtyp="immutable"
#mtyp="normal"
VBoxManage --nologo storageattach $MACHINE --storagectl C$MACHINE --port 1 --device 0 \
      --type hdd --medium $MACHINEDIR/$MACHINE.vdi --mtype $mtyp
 
#VBoxManage --nologo storageattach $MACHINE --storagectl C$MACHINE --port 1 --device 0 \
#      --type dvddrive --medium $MACHINEDIR/WindowsXP.iso

d4e2012

/vm/vb/d4e2012/init.add.sh
VBoxManage --nologo modifyvm $MACHINE   --ostype "OpenSUSE"
VBoxManage --nologo modifyvm $MACHINE   --nictype1 "82540EM" --audiocontroller ac97
VBoxManage --nologo storagectl    $MACHINE --name C$MACHINE --add ide --controller PIIX4 --hostiocache off
VBoxManage --nologo sharedfolder add $MACHINE  --name media --hostpath /media --automount
 
mtyp="immutable"
#mtyp="normal"
VBoxManage --nologo storageattach $MACHINE --storagectl C$MACHINE --port 1 --device 0 \
      --type hdd --medium $MACHINEDIR/$MACHINE.vdi --mtype $mtyp
 
#VBoxManage --nologo storageattach $MACHINE --storagectl C$MACHINE --port 1 --device 0 \
#      --type dvddrive --medium $MACHINEDIR/d4e2012.i586.iso

d4e2012-live

/vm/vb/d4e2012-live/init.add.sh
VBoxManage --nologo modifyvm $MACHINE   --ostype "Debian"
VBoxManage --nologo modifyvm $MACHINE   --chipset piix3 --pagefusion on
VBoxManage --nologo storagectl    $MACHINE --name C$MACHINE --add ide --controller PIIX4 --hostiocache on
VBoxManage --nologo modifyvm $MACHINE   --mouse usbtablet
VBoxManage --nologo sharedfolder add $MACHINE  --name media --hostpath /media --automount
 
VBoxManage --nologo storageattach $MACHINE --storagectl C$MACHINE --port 1 --device 0 \
      --type dvddrive --medium $MACHINEDIR/d4e2012-live.iso

Dateien und Ordner auf alle Clients übertragen

Sender
  • Dateien und Ordner in Liste eintragen, welche übertragen werden sollten:
/root/udpcastlist
/home/student/.xinitrc
/usr/share/vlizedlab/scripts/vb.init.default.sh
Empfänger
/usr/local/bin/getfiles
#!/bin/bash
udp-receiver --nosync --nokbd | tar -xvz -C /
chmod 700 /usr/local/bin/getfiles
  • getfiles auf Clients in screen Sitzung starten
  • Am Sender:
tar -czv udpcastlist `cat udpcastlist` | udp-sender

Verteilen der virtuellen Maschinen

Empfänger
vludpreceiveVMs
Sender
vludpsendVMs

Deployment auf einen anderen Rechner

  • Knoppix 32/64bit LIVE System starten
cfdisk /dev/sda
  sda1 Boot-Flag Primary Linux      5229.51MB
  sda2           Primary Linux-swap 2113.90MB
  sda3           Primary Linux      Rest
mkfs.ext2 /dev/sda1
mkswap /dev/sda2
mkfs.xfs /dev/sda3
rsync -av -P --exclude=dev --exclude=proc --exclude=sys --exclude=vm -e ssh root@192.168.100.130:/ /media/sda1/.
rsync -av -P -e ssh root@192.168.100.130:/vm/ /media/sda3/.
mkdir /media/sda3/{dev,proc,sys,vm}
rn /media/sda1/etc/udev/rules.d/70-persistent-net.rules
mount --bind /proc /media/sda1/proc
mount --bind /dev /media/sda1/dev
mount --bind /sys /media/sda1/sys
chroot /media/sda1 /bin/bash
grub-install /dev/sda
update-grub
exit; umount /media/sda1/proc /media/sda1/dev /media/sda1/sys; reboot

Wartung via Planck

  • planck:/opt/wartung/vlizedlab #
klonen.sh  ping.sh  reboot.sh  setwol.sh  shutdown.sh  ssh.sh  startvm.sh  transfer.sh  view.sh  wakeup.sh  wakeup_single.sh

Randnotizen

Auflösungen für Remote, KDE4
  • 1280x1024 → 1286x1051
  • 1024x768 → 1030x795
Schulungen
v_lizedlab.1404912870.txt.gz · Zuletzt geändert: 2014/07/09 15:34 von admin