From 60767203dfab0cf321d3e830e1d1af213bf6df74 Mon Sep 17 00:00:00 2001 From: Simon Rettberg Date: Fri, 24 May 2013 21:10:10 +0200 Subject: IMPORTANT: Implemented remote config that will be loaded at bootup IMPORTANT: You need to add the URL to a config to the kernel command line IMPORTANT: or you won't see any vmware images anymore in your vmchooser IMPORTANT: add 'APPEND slxconfig=http://132.230.8.113/boot/config' to IMPORTANT: your tftp config for a start... --- .../data/etc/systemd/system/var-lib-virt.mount | 10 ---------- .../data/etc/systemd/system/var-lib-virt.service | 8 ++++++++ .../data/etc/openslx/udhcpc.openslx.script | 2 +- .../data/etc/systemd/system/download-config.service | 6 ++++++ .../data/opt/openslx/bin/activate-sysconfig | 19 +++++++++++++++++++ .../data/opt/openslx/bin/mount-lib-virt | 8 ++++++++ 6 files changed, 42 insertions(+), 11 deletions(-) delete mode 100644 remote/modules/vmchooser/data/etc/systemd/system/var-lib-virt.mount create mode 100644 remote/modules/vmchooser/data/etc/systemd/system/var-lib-virt.service create mode 100644 remote/rootfs/rootfs-stage32/data/etc/systemd/system/download-config.service create mode 100755 remote/rootfs/rootfs-stage32/data/opt/openslx/bin/activate-sysconfig create mode 100755 remote/rootfs/rootfs-stage32/data/opt/openslx/bin/mount-lib-virt 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 -- cgit v1.2.3-55-g7522