diff options
Diffstat (limited to 'remote')
6 files changed, 42 insertions, 11 deletions
diff --git a/remote/modules/vmchooser/data/etc/systemd/system/var-lib-virt.mount b/remote/modules/vmchooser/data/etc/systemd/system/var-lib-virt.mount deleted file mode 100644 index 21ac1544..00000000 --- a/remote/modules/vmchooser/data/etc/systemd/system/var-lib-virt.mount +++ /dev/null @@ -1,10 +0,0 @@ -[Unit] - Description=Mount vm-store NFS - - [Mount] - What=vm-store.public.ads.uni-freiburg.de:vmwareImages/vmware/vmware65 - Where=/var/lib/virt - Type=nfs - Options=ro,async,nolock,vers=3 - StandardOutput=syslog - StandardError=syslog diff --git a/remote/modules/vmchooser/data/etc/systemd/system/var-lib-virt.service b/remote/modules/vmchooser/data/etc/systemd/system/var-lib-virt.service new file mode 100644 index 00000000..7a4b4f58 --- /dev/null +++ b/remote/modules/vmchooser/data/etc/systemd/system/var-lib-virt.service @@ -0,0 +1,8 @@ +[Unit] +Description=Mount vm-store NFS +Wants=download-config.service +After=download-config.service + +[Service] +Type=oneshot +ExecStart=/opt/openslx/bin/mount-lib-virt diff --git a/remote/rootfs/rootfs-stage32/data/etc/openslx/udhcpc.openslx.script b/remote/rootfs/rootfs-stage32/data/etc/openslx/udhcpc.openslx.script index 199495aa..444dc52c 100755 --- a/remote/rootfs/rootfs-stage32/data/etc/openslx/udhcpc.openslx.script +++ b/remote/rootfs/rootfs-stage32/data/etc/openslx/udhcpc.openslx.script @@ -63,7 +63,7 @@ search lp.ruf.uni-freiburg.de # TODO i.e. event trigger [ "x$(grep -ci mount /proc/cmdline)" != "x0" ] && systemctl start nfs-mount.service # Always mount virtlib directory - systemctl start var-lib-virt.mount + systemctl start var-lib-virt.service ;; diff --git a/remote/rootfs/rootfs-stage32/data/etc/systemd/system/download-config.service b/remote/rootfs/rootfs-stage32/data/etc/systemd/system/download-config.service new file mode 100644 index 00000000..8807d2ea --- /dev/null +++ b/remote/rootfs/rootfs-stage32/data/etc/systemd/system/download-config.service @@ -0,0 +1,6 @@ +[Unit] +Description=Parse kernel command line for config URL and download + +[Service] +Type=oneshot +ExecStart=/opt/openslx/bin/activate-sysconfig diff --git a/remote/rootfs/rootfs-stage32/data/opt/openslx/bin/activate-sysconfig b/remote/rootfs/rootfs-stage32/data/opt/openslx/bin/activate-sysconfig new file mode 100755 index 00000000..e50111ae --- /dev/null +++ b/remote/rootfs/rootfs-stage32/data/opt/openslx/bin/activate-sysconfig @@ -0,0 +1,19 @@ +#!/bin/bash + +export PATH=/opt/openslx/bin:/opt/openslx/usr/bin + +URL="$(grep -o -E "slxconfig=\S+" /proc/cmdline | cut -c 11-)" + +if [ -z "$URL" ]; then + echo "Error - 'slxconfig=' not found in command line, or empty" + exit 1 +fi + +wget -q -O "/opt/openslx/config" "$URL" +RET=$? +if [ "x$RET" != "x0" ]; then + echo "Error - downloading '$URL' via wget failed. Exit Code: $RET" + exit 1 +fi +exit 0 + diff --git a/remote/rootfs/rootfs-stage32/data/opt/openslx/bin/mount-lib-virt b/remote/rootfs/rootfs-stage32/data/opt/openslx/bin/mount-lib-virt new file mode 100755 index 00000000..ac0dd1a4 --- /dev/null +++ b/remote/rootfs/rootfs-stage32/data/opt/openslx/bin/mount-lib-virt @@ -0,0 +1,8 @@ +#!/bin/bash + +. /opt/openslx/config || exit 1 + +export PATH=/opt/openslx/bin:/opt/openslx/usr/bin:/opt/openslx/sbin:/opt/openslx/usr/sbin:/bin:/sbin:/usr/bin:/usr/sbin + +mkdir -p /var/lib/virt +mount -t nfs -o ro,async,nolock,vers=3 "$SLX_VM_NFS" /var/lib/virt |
