diff options
author | Jonathan Bauer | 2013-08-14 17:35:31 +0200 |
---|---|---|
committer | Jonathan Bauer | 2013-08-14 17:35:31 +0200 |
commit | d78eecabe39830ff5017c993ffd818aff2033e02 (patch) | |
tree | 9f19df08ef7a469b430bb5781727f8a59507309b /remote/rootfs/rootfs-stage32/data | |
parent | Merge branch 'master' of git.openslx.org:openslx-ng/tm-scripts (diff) | |
download | tm-scripts-d78eecabe39830ff5017c993ffd818aff2033e02.tar.gz tm-scripts-d78eecabe39830ff5017c993ffd818aff2033e02.tar.xz tm-scripts-d78eecabe39830ff5017c993ffd818aff2033e02.zip |
[rootfs-stage32] setup all addons according to /opt/openslx/config. Your config now needs: SLX_ADDONS_BASE_DIR as the URL (with http prefix) where the addons are and SLX_ADDONS_LIST as the list of addons that exists. i.e. SLX_ADDONS_BASE_DIR='http://server/distro/addons' and SLX_ADDONS_LIST='vmware'. The script would then try to wget http://serveR/distro/addons/vmware.sqfs . The file must be sqfs, as produced by mltk with ./mltk server <ip> <addon_target> -e addons
Diffstat (limited to 'remote/rootfs/rootfs-stage32/data')
5 files changed, 47 insertions, 43 deletions
diff --git a/remote/rootfs/rootfs-stage32/data/etc/systemd/system/setup-slx-addon@.service b/remote/rootfs/rootfs-stage32/data/etc/systemd/system/setup-slx-addon@.service deleted file mode 100644 index af639976..00000000 --- a/remote/rootfs/rootfs-stage32/data/etc/systemd/system/setup-slx-addon@.service +++ /dev/null @@ -1,8 +0,0 @@ -[Unit] -Description=Download, mount and append SLX addon %I -After=sysinit.target - -[Service] -Type=oneshot -ExecStart=/opt/openslx/scripts/systemd-setup_slx_addon %I -RemainAfterExit=yes diff --git a/remote/rootfs/rootfs-stage32/data/etc/systemd/system/setup-slx-addons.service b/remote/rootfs/rootfs-stage32/data/etc/systemd/system/setup-slx-addons.service new file mode 100644 index 00000000..acc827c9 --- /dev/null +++ b/remote/rootfs/rootfs-stage32/data/etc/systemd/system/setup-slx-addons.service @@ -0,0 +1,9 @@ +[Unit] +Description=Download, mount and append SLX addons +After=sysinit.target setup-partitions.service +Wants=setup-partitions.service + +[Service] +Type=oneshot +ExecStart=/opt/openslx/scripts/systemd-setup_slx_addons +RemainAfterExit=yes diff --git a/remote/rootfs/rootfs-stage32/data/etc/systemd/system/sysinit.target.wants/setup-slx-addons.service b/remote/rootfs/rootfs-stage32/data/etc/systemd/system/sysinit.target.wants/setup-slx-addons.service new file mode 120000 index 00000000..415050b5 --- /dev/null +++ b/remote/rootfs/rootfs-stage32/data/etc/systemd/system/sysinit.target.wants/setup-slx-addons.service @@ -0,0 +1 @@ +../setup-slx-addons.service
\ No newline at end of file diff --git a/remote/rootfs/rootfs-stage32/data/opt/openslx/scripts/systemd-setup_slx_addon b/remote/rootfs/rootfs-stage32/data/opt/openslx/scripts/systemd-setup_slx_addon deleted file mode 100755 index 0b52922a..00000000 --- a/remote/rootfs/rootfs-stage32/data/opt/openslx/scripts/systemd-setup_slx_addon +++ /dev/null @@ -1,35 +0,0 @@ -#!/bin/bash -# -# Script to be called by systemd -# -# Downloads and appends addons per sqfs/aufs. -# -# - -# This script requires the addon to setup as its first parameter - -[ "x$1" == "x" ] && { echo "$0 requires the addon as parameter. None given." && exit 1; } -ADDON="$1" - -# read openslx config -. /opt/openslx/config -[ -z "${SLX_ADDONS_BASE_URL}" ] && { echo "SLX_ADDONS_BASE_URL is not set in /opt/openslx/config." && exit 1; } -[ -z "${SLX_ADDONS_LIST}" ] && { echo "SLX_ADDONS_LIST is not set in /opt/openslx/config." && exit 1; } - -SLX_BASE_MNT="/opt/openslx/mnt" -SYS_TMP="/tmp" - -# download the addon from the given URL -ADDON_TARGET_PATH="${SYS_TMP}/$(basename $(echo ${ADDON})).sqfs" -echo "Downloading $SLX_ADDONS_BASE_URL/${ADDON}.sqfs to ${ADDON_TARGET_PATH}" -wget -T 5 -q -O "${ADDON_TARGET_PATH}" "${SLX_ADDONS_BASE_URL}/${ADDON}.sqfs"|| { echo "Failed to download." && exit 1; } - -# now mount it to $SLX_MNT/<addon-name> -ADDON_MOUNT_POINT="${SLX_BASE_MNT}/$(basename $(echo ${ADDON})|awk -F "." '{print $1}')" -mkdir -p "$ADDON_MOUNT_POINT" -echo "Mounting ${ADDON_TARGET_PATH} to ${ADDON_MOUNT_POINT}" -mount -t squashfs "$ADDON_TARGET_PATH" ${ADDON_MOUNT_POINT} || { echo "Failed to mount." && exit 1; } - -# now append it to / -echo "Appending ${ADDON_MOUNT_POINT} to /" -mount -o remount,append:${ADDON_MOUNT_POINT}=ro / || { echo "Fail." && exit 1; } diff --git a/remote/rootfs/rootfs-stage32/data/opt/openslx/scripts/systemd-setup_slx_addons b/remote/rootfs/rootfs-stage32/data/opt/openslx/scripts/systemd-setup_slx_addons new file mode 100755 index 00000000..b6f04d55 --- /dev/null +++ b/remote/rootfs/rootfs-stage32/data/opt/openslx/scripts/systemd-setup_slx_addons @@ -0,0 +1,37 @@ +#!/bin/bash +# +# Script to be called by systemd +# +# Downloads and appends addons per sqfs/aufs. +# +# + +# This script requires the addon to setup as its first parameter + +[ "x$1" == "x" ] && { echo "$0 requires the addon as parameter. None given." && exit 1; } +ADDON="$1" + +# read openslx config +. /opt/openslx/config +[ -z "${SLX_ADDONS_BASE_URL}" ] && { echo "SLX_ADDONS_BASE_URL is not set in /opt/openslx/config." && exit 1; } +[ -z "${SLX_ADDONS_LIST}" ] && { echo "SLX_ADDONS_LIST is not set in /opt/openslx/config." && exit 1; } + +SLX_BASE_MNT="/opt/openslx/mnt" +SYS_TMP="/tmp" + +for ADDON in ${SLX_ADDONS_LIST}; do + # download the addon from the given URL + local ADDON_TARGET_PATH="${SYS_TMP}/$(basename $(echo ${ADDON})).sqfs" + echo "Downloading $SLX_ADDONS_BASE_URL/${ADDON}.sqfs to ${ADDON_TARGET_PATH}" + wget -T 5 -q -O "${ADDON_TARGET_PATH}" "${SLX_ADDONS_BASE_URL}/${ADDON}.sqfs"|| { echo "Failed to download." && exit 1; } + + # now mount it to $SLX_MNT/<addon-name> + local ADDON_MOUNT_POINT="${SLX_BASE_MNT}/$(basename $(echo ${ADDON})|awk -F "." '{print $1}')" + mkdir -p "$ADDON_MOUNT_POINT" + echo "Mounting ${ADDON_TARGET_PATH} to ${ADDON_MOUNT_POINT}" + mount -t squashfs "$ADDON_TARGET_PATH" ${ADDON_MOUNT_POINT} || { echo "Failed to mount." && exit 1; } + + # now append it to / + echo "Appending ${ADDON_MOUNT_POINT} to /" + mount -o remount,append:${ADDON_MOUNT_POINT}=ro / || { echo "Fail." && exit 1; } +done |