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/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 ++++++++ 4 files changed, 34 insertions(+), 1 deletion(-) 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 (limited to 'remote/rootfs') 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