summaryrefslogtreecommitdiffstats
path: root/remote/modules/vmchooser/data/opt/openslx/scripts
diff options
context:
space:
mode:
Diffstat (limited to 'remote/modules/vmchooser/data/opt/openslx/scripts')
-rwxr-xr-xremote/modules/vmchooser/data/opt/openslx/scripts/systemd-vmchooser_env52
-rwxr-xr-xremote/modules/vmchooser/data/opt/openslx/scripts/vmchooser-run_virt10
2 files changed, 58 insertions, 4 deletions
diff --git a/remote/modules/vmchooser/data/opt/openslx/scripts/systemd-vmchooser_env b/remote/modules/vmchooser/data/opt/openslx/scripts/systemd-vmchooser_env
index c796b3db..913d9de6 100755
--- a/remote/modules/vmchooser/data/opt/openslx/scripts/systemd-vmchooser_env
+++ b/remote/modules/vmchooser/data/opt/openslx/scripts/systemd-vmchooser_env
@@ -36,7 +36,7 @@ mkdir -p "${VMCHOOSER_DIR}/fd-loop" -m 1777
grep -qE "unionfs |aufs " /proc/mounts && \
mount -n -o size=1500k -t tmpfs vm-loopimg "${VMCHOOSER_DIR}/data/loopimg"
-# create an empty floppy image of 1.4MByte size
+# create an empty floppy image of 1.44 MByte size
dd "if=/dev/zero" "of=${VMCHOOSER_DIR}/data/loopimg/fd.img" count=2880 bs=512 2>/dev/null
chmod 0777 "${VMCHOOSER_DIR}/data/loopimg/fd.img"
@@ -51,8 +51,7 @@ mount -n -t msdos -o loop,umask=000 "${VMCHOOSER_DIR}/data/loopimg/fd.img" "${VM
#fi
# setup more scratch space for virtual machines, if configured
-mkdir -p /tmp/virt
-mkdir -p /var/log/samba
+mkdir -p /tmp/virt /var/log/samba /run/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)
@@ -131,3 +130,50 @@ for floppy in $(dmesg|grep -i "Floppy drive"|sed "s,.*(s): ,,;s, is .*,,"); do
j=$(expr $j + 1)
done
+################################################################################
+### Setup VM networking
+################################################################################
+
+# there will be three types of network interfaces for virtual machines available
+# all will be configured for every type of virtualization tool
+# a) br0 is the direct host bridge into the local LAN (br0 already exists)
+# vmnet0 for VMware
+# vboxnet0 for VirtualBox
+# kvmnet0* for Qemu/KVM
+# b) nat1 is an internal bridge which "NATes" into the local LAN (with DHCP)
+# vmnet1 for VMware
+# vboxnet1 for VirtualBox
+# kvmnet1* for Qemu/KVM
+# c) vsw2 is an internal host bridge to connect software defined LANs to
+# vmnet2 for VMware
+# vboxnet2 for VirtualBox
+# kvmnet2* for Qemu/KVM
+
+# creating and configuring nat0
+brctl addbr nat1
+ip link set dev nat1 up
+ip addr add 192.168.101.1/24 dev nat1
+echo "1" >/proc/sys/net/ipv4/conf/nat1/forwarding
+echo "1" >/proc/sys/net/ipv4/conf/br0/forwarding 2>/dev/null
+iptables -t nat -A POSTROUTING -o br0 -j MASQUERADE
+
+for wait in 1 1 2 2 3 end; do
+ grep '^SLX_DNS' "/opt/openslx/config" > /dev/null && break
+ [ "$wait" == "end" ] && echo "No DNS config found, using google dns" && break
+ echo "Waiting for DNS config.."
+ sleep "$wait"
+done
+
+# read the DNS configuration and configure the udhcpd
+[ -z "${SLX_DNS}" ] && SLX_DNS="8.8.8.8"
+sed -i "s,DNSSERVER,${SLX_DNS},;s,DOMAIN,${SLX_NET_DOMAIN}," \
+ /opt/openslx/vmchooser/config/udhcpd-nat1.conf
+
+mkdir -p /var/lib/udhcpd
+udhcpd -S /opt/openslx/vmchooser/config/udhcpd-nat1.conf
+
+# creating and configuring vsw2
+brctl addbr vsw2
+ip link set dev vsw2 up
+echo "1" >/proc/sys/net/ipv4/conf/vsw2/forwarding
+
diff --git a/remote/modules/vmchooser/data/opt/openslx/scripts/vmchooser-run_virt b/remote/modules/vmchooser/data/opt/openslx/scripts/vmchooser-run_virt
index 2d6dfb41..bef43dd1 100755
--- a/remote/modules/vmchooser/data/opt/openslx/scripts/vmchooser-run_virt
+++ b/remote/modules/vmchooser/data/opt/openslx/scripts/vmchooser-run_virt
@@ -439,7 +439,8 @@ SPOOLDIR="/var/spool"
QUEUE="STANDARD"
# Start the lpdaemon listening on the given port
-tcpsvd -E 0.0.0.0 5515 \
+# FixMe: Solution for general printer redirection in other cases (iptables on outgoing port)
+tcpsvd -E 192.168.101.1 5515 \
lpd "$SPOOLDIR" \
sh -c "printergui $USER $SPOOLDIR/$QUEUE/\$DATAFILE" &
@@ -542,6 +543,13 @@ if ! kill -0 "$PID_LPD"; then
slxlog "virt-lpd" "Could not start tcpsvd/lpd for virtual machine session"
fi
+# Configure and start samba service to provide user's home directory
+#if [ -f /usr/sbin/smbd ] ; then
+# sudo /opt/openslx/bin/sed -i /opt/openslx/vmchooser/smb.conf -e "s,USER,$USER,"
+# sudo /usr/sbin/nmbd -s /opt/openslx/vmchooser/config/smb.conf
+# sudo /usr/sbin/smbd -s /opt/openslx/vmchooser/config/smb.conf
+#fi
+
# This will start the VM
eval ${VIRTCMD} ${VIRTCMDOPTS}
#