diff options
| author | root | 2013-06-03 17:34:24 +0200 |
|---|---|---|
| committer | root | 2013-06-03 17:34:24 +0200 |
| commit | 79938062f218767d03b713db88cdca41543f5924 (patch) | |
| tree | 89d5e2f288d7736401b34f8ccd57c6acb6d4257e /remote/modules/vmchooser/data | |
| parent | [kernel] Fix aufs3 patching (diff) | |
| parent | Merge branch 'master' of git.openslx.org:openslx-ng/tm-scripts (diff) | |
| download | tm-scripts-79938062f218767d03b713db88cdca41543f5924.tar.gz tm-scripts-79938062f218767d03b713db88cdca41543f5924.tar.xz tm-scripts-79938062f218767d03b713db88cdca41543f5924.zip | |
Merge branch 'master' of simonslx:openslx-ng/tm-scripts
Diffstat (limited to 'remote/modules/vmchooser/data')
4 files changed, 150 insertions, 0 deletions
diff --git a/remote/modules/vmchooser/data/etc/openslx/vmchooser/smb.conf b/remote/modules/vmchooser/data/etc/openslx/vmchooser/smb.conf new file mode 100644 index 00000000..ec757ce4 --- /dev/null +++ b/remote/modules/vmchooser/data/etc/openslx/vmchooser/smb.conf @@ -0,0 +1,25 @@ +# basic samba configuration file for OpenSLX host-internal networking +[global] + workgroup = OPENSLX + netbios name = HOMESERVER + security = SHARE + server string = Home and Print Provider + bind interfaces only = Yes + interfaces = NWIF + pid directory = PIDDIR + +[userhome] + comment = Home Directory of USER + path = /home/USER + create mask = 0700 + guest ok = No + read only = No + +[scratch] + comment = Host System Temp Folder + path = /tmp + create mask = 0700 + guest ok = Yes + read only = No + browseable = Yes + diff --git a/remote/modules/vmchooser/data/etc/openslx/vmchooser/vmchooser-env b/remote/modules/vmchooser/data/etc/openslx/vmchooser/vmchooser-env new file mode 100755 index 00000000..c4d99d6d --- /dev/null +++ b/remote/modules/vmchooser/data/etc/openslx/vmchooser/vmchooser-env @@ -0,0 +1,115 @@ +#!/bin/sh + +export PATH=$PATH:/opt/openslx/bin:/opt/openslx/sbin:/opt/openslx/usr/bin:/opt/openslx/usr/sbin + +#source config file with vars (e.g. ipaddr, macaddr, hostname) +. /opt/openslx/config + +#from plugins/vmchooser/40-started-hw-config/run-virt.sh +#TODO: extra systemd-service for hwinfo +hwinfo --cdrom | grep -i "Device File:" | awk {'print $3'} >/etc/openslx/hwinfo.cdrom +hwinfo --floppy | grep -i "Device File:" | awk {'print $3'} >/etc/openslx/hwinfo.floppy + +#from plugins/vmchooser/XX_vmchooser.sh +VMCHOOSER_CONF_DIR=/etc/openslx/vmchooser + +mkdir -p ${VMCHOOSER_CONF_DIR}/loopimg +mkdir -p ${VMCHOOSER_CONF_DIR}/fd-loop -m 1777 + +# setup all generic virtualization / starting stuff like the floppy image +# loop file for exchanging information between linux and vm guest +if modprobe loop; then + mdev -s +else + : #|| error "" nonfatal +fi + +# mount a clean tempfs (bug in UnionFS prevents loopmount to work) +grep -qE "unionfs |aufs " /proc/mounts && \ +mount -n -o size=1500k -t tmpfs vm-loopimg ${VMCHOOSER_CONF_DIR}/loopimg + +# create an empty floppy image of 1.4MByte size +dd if=/dev/zero of=${VMCHOOSER_CONF_DIR}/loopimg/fd.img count=2880 bs=512 2>/dev/null +chmod 0777 ${VMCHOOSER_CONF_DIR}/loopimg/fd.img + +# use dos formatter copied into stage3 +mkdosfs ${VMCHOOSER_CONF_DIR}/loopimg/fd.img >/dev/null 2>&1 #|| error +mount -n -t msdos -o loop,umask=000 ${VMCHOOSER_CONF_DIR}/loopimg/fd.img \ + ${VMCHOOSER_CONF_DIR}/fd-loop + +#pvs integration +#if [ $vmchooser_pvs -ne 0 ]; then +# sed -i /usr/share/xsessions/default.desktop \ +# -e "s,vmchooser$,vmchooser --pvs," +#fi + +# setup more scratch space for virtual machines, if configured +mkdir -p /tmp/virt +mkdir -p /var/log/samba + +# enable normal users to setup the extended virtual machine redo file space +# and image source via network block device (NBD only at the moment) +# allow to start/stop samba on virtual devices (latter one ignores multiple +# independent daemons) + +#cat >> /mnt/etc/sudoers << EOF +# allow to start and stop the special /tmp redo file space (RAM + NBD/NFS server RAID) +#ALL ALL=NOPASSWD: /sbin/losetup /dev/loop* +#ALL ALL=NOPASSWD: /sbin/mdadm -C /dev/md0 -l linear --raid-devices=2 /dev/loop* /dev/* +#ALL ALL=NOPASSWD: /opt/openslx/rootfs/usr/sbin/nbd-client * * /dev/nbd* +# allow to configure and start/stop samba services +#ALL ALL=NOPASSWD: /opt/openslx/rootfs/bin/sed -i /etc/*/smb.conf -e * +#ALL ALL=NOPASSWD: /usr/sbin/nmbd -s /etc/*/smb.conf +#ALL ALL=NOPASSWD: /usr/sbin/smbd -s /etc/*/smb.conf +#ALL ALL=NOPASSWD: /opt/openslx/rootfs/usr/bin/killall nmbd smbd +#EOF + +#from plugins/vmchooser/80-after-plugins/virtualization.sh + +# change free mem +totalmem=$(expr $(grep -i "memtotal" /proc/meminfo \ + | awk '{print $2}') / 1024) +echo "totalmem=${totalmem}" >> ${VMCHOOSER_CONF_DIR}/virtualization.conf + +# cpu cores +CPU_CORES=$(grep 'processor.*:' /proc/cpuinfo | wc -l) +if [ "${CPU_CORES}" -gt "1" 2>/dev/null ]; then + echo "cpu_cores=${CPU_CORES}" >> ${VMCHOOSER_CONF_DIR}/virtualization.conf +else + echo 'cpu_cores=1' >> ${VMCHOOSER_CONF_DIR}/virtualization.conf +fi + +# arch +echo "host_arch=$(uname -m)" >> ${VMCHOOSER_CONF_DIR}/virtualization.conf + +# VT enabled cpu? +if grep -q ^flags.*\\\<vmx\\\> /proc/cpuinfo; then + echo "vtflag=1" >> ${VMCHOOSER_CONF_DIR}/virtualization.conf + echo 'kvm_module="kvm_intel"' >> ${VMCHOOSER_CONF_DIR}/virtualization.conf + elif grep -q ^flags.*\\\<svm\\\> /proc/cpuinfo; then + echo "vtflag=1" >> ${VMCHOOSER_CONF_DIR}/virtualization.conf + echo 'kvm_module="kvm_amd"' >> ${VMCHOOSER_CONF_DIR}/virtualization.conf + else + echo "vtflag=0" >> ${VMCHOOSER_CONF_DIR}/virtualization.conf +fi + +# write mac +echo "hostmacaddr=${SLX_PXE_MAC}" >> ${VMCHOOSER_CONF_DIR}/virtualization.conf +# ip addr +echo "hostip=${SLX_PXE_CLIENT_IP}" >> ${VMCHOOSER_CONF_DIR}/virtualization.conf +# hostname +echo "hostname=${SLX_HOSTNAME}" >> ${VMCHOOSER_CONF_DIR}/virtualization.conf + +# get further hw information +j=0 +for i in $(cat /etc/openslx/hwinfo.cdrom); do + echo "cdrom_$j=$i" >> ${VMCHOOSER_CONF_DIR}/virtualization.conf + j=$(expr $j + 1) +done + +j=0 +for i in $(cat /etc/openslx/hwinfo.floppy); do + echo "floppy_$j=$i" >> ${VMCHOOSER_CONF_DIR}/virtualization.conf + j=$(expr $j + 1) +done + diff --git a/remote/modules/vmchooser/data/etc/systemd/system/graphical.target.wants/vmchooser.service b/remote/modules/vmchooser/data/etc/systemd/system/graphical.target.wants/vmchooser.service new file mode 120000 index 00000000..ad1590e8 --- /dev/null +++ b/remote/modules/vmchooser/data/etc/systemd/system/graphical.target.wants/vmchooser.service @@ -0,0 +1 @@ +../vmchooser.service
\ No newline at end of file diff --git a/remote/modules/vmchooser/data/etc/systemd/system/vmchooser.service b/remote/modules/vmchooser/data/etc/systemd/system/vmchooser.service new file mode 100644 index 00000000..001d90f3 --- /dev/null +++ b/remote/modules/vmchooser/data/etc/systemd/system/vmchooser.service @@ -0,0 +1,9 @@ +[Unit] +Description=Sets up the vmchooser environment +Wants=graphical.target +Before=graphical.target + +[Service] +Type=oneshot +RemainAfterExit=yes +ExecStart=/etc/openslx/vmchooser/vmchooser-env |
