diff options
| author | Simon Rettberg | 2013-03-19 19:42:41 +0100 |
|---|---|---|
| committer | Simon Rettberg | 2013-03-19 19:42:41 +0100 |
| commit | 61b94929a4d429a8480dcc06487c52be15db5e1f (patch) | |
| tree | 871d76618b66216ec5adb6446907a7ea8bde8ebd /server | |
| parent | Tweak modules to work with openSUSE 12.1 (diff) | |
| parent | Enable /tmp on ID44 partition if available. (diff) | |
| download | tm-scripts-61b94929a4d429a8480dcc06487c52be15db5e1f.tar.gz tm-scripts-61b94929a4d429a8480dcc06487c52be15db5e1f.tar.xz tm-scripts-61b94929a4d429a8480dcc06487c52be15db5e1f.zip | |
Merge branch 'master' of ssh://openslx/openslx-ng/tm-scripts
Diffstat (limited to 'server')
| -rwxr-xr-x | server/build_core | 71 | ||||
| -rwxr-xr-x | server/export_target | 108 |
2 files changed, 108 insertions, 71 deletions
diff --git a/server/build_core b/server/build_core deleted file mode 100755 index cf748428..00000000 --- a/server/build_core +++ /dev/null @@ -1,71 +0,0 @@ -#!/bin/bash -# Copyright (c) 2012 - OpenSLX GmbH -# -# This program is free software distributed under the GPL version 2. -# See http://openslx.org/COPYING -# -# If you have any feedback please consult http://openslx.org/feedback and -# send your feedback to feedback@openslx.org -# -# General information about OpenSLX can be found at http://openslx.org -# -# Server side script to generate stage3.1,2 initial ramfses for OpenSLX Linux -# stateless clients -############################################################################# - -# first parameter is a hash pointing to the target directory -# /srv/openslx/build - -# in the future the prefix should be set via slxsettings ... - -MODULE_DIR=${ROOT_DIR}/server - -STAGE31_DIR=${ROOT_DIR}/remote/stage3.1 -STAGE32_DIR=${ROOT_DIR}/remote/stage3.2 - -# initial checks -initial_checks() { - local TOOL_STR="$TOOL_STR initial_checks:" - [ -d "${STAGE31_DIR}" ] || perror "No stage3.1 directory found. Please run './mltk core -b' first." - [ -d "${STAGE32_DIR}" ] || perror "No stage3.2 directory found. Please run './mltk tools -b' first." - - [ -z $(which mksquashfs) ] && perror "mksquashfs not found, please install squashfs-tools first." -} - -generate_squashfs() { - [[ $CORE_NO_SQUASHFS == 1 ]] && return - local TOOL_STR="$TOOL_STR generate_squashfs:" - [ -e "${MODULE_DIR}/openslx/mnt/openslx.sqfs" ] && rm "${MODULE_DIR}/openslx/mnt/openslx.sqfs" - pinfo "Writing openslx.sqfs to '${MODULE_DIR}/openslx/mnt/'" - mksquashfs "${STAGE32_DIR}" "${MODULE_DIR}/openslx/mnt/openslx.sqfs" -comp xz -b 1M -no-recovery >&6 || perror "mksquashfs failed ($?)." - generate_initramfs "initramfs2" "${MODULE_DIR}/openslx" -} - -generate_stage31() { - initial_checks - generate_rootfs - generate_squashfs - - if [ ! -e ${MODULE_DIR}/kernel ]; then - local TOOL_STR="$TOOL_STR copy_kernel:" - pinfo "Copying Kernel $(uname -r) to ${MODULE_DIR}/kernel" - cp "/boot/vmlinuz-$(uname -r)" "${MODULE_DIR}/kernel" || perror "Cannot copy kernel from '/boot/vmlinuz-$(uname -r)' to '${MODULE_DIR}/kernel'" - else - pinfo "Not copying kernel from system, as it already exists." - fi -} - -clean_core() { - local TOOL_STR="$TOOL_STR clean_core:" - pinfo "Cleaning '${STAGE31_DIR}'..." - [ -d ${STAGE31_DIR} ] && { rm -rf ${STAGE31_DIR} || perror "rm -rf failed."; } - pinfo "Cleaning '${MODULE_DIR}/kernel'..." - [ -e ${MODULE_DIR}/kernel ] && { rm ${MODULE_DIR}/kernel || perror "rm failed."; } - pinfo "Cleaning '${MODULE_DIR}/initramfs'..." - [ -e ${MODULE_DIR}/initramfs ] && { rm ${MODULE_DIR}/initramfs || perror "rm failed."; } - pinfo "Cleaning '${MODULE_DIR}/openslx'..." - [ -d ${MODULE_DIR}/openslx ] && { rm -rf ${MODULE_DIR}/openslx || perror "rm failed."; } - pinfo "Cleaning '${MODULE_DIR}/initramfs2'..." - [ -d ${MODULE_DIR}/initramfs2 ] && { rm ${MODULE_DIR}/initramfs2 || perror "rm failed."; } -} - diff --git a/server/export_target b/server/export_target new file mode 100755 index 00000000..cb55a55f --- /dev/null +++ b/server/export_target @@ -0,0 +1,108 @@ +#!/bin/bash +# Copyright (c) 2012 - OpenSLX GmbH +# +# This program is free software distributed under the GPL version 2. +# See http://openslx.org/COPYING +# +# If you have any feedback please consult http://openslx.org/feedback and +# send your feedback to feedback@openslx.org +# +# General information about OpenSLX can be found at http://openslx.org +# +# Server side script to generate stage3.1,2 initial ramfses for OpenSLX Linux +# stateless clients +############################################################################# + +#where we are +MODE_DIR="${ROOT_DIR}/server" + +#files generated by this script land in boot +SERVER_BOOT_DIR="${MODE_DIR}/boot" + +#builds from remote server +SERVER_BUILD_DIR="${MODE_DIR}/remote_builds" +REMOTE_BUILD_DIR="${ROOT_DIR}/remote/builds" + +#stage32 sqfs directory +STAGE32_SQFS_DIR="${SERVER_BOOT_DIR}/stage32_sqfs/mnt" + +# initial checks +initial_checks() { + + local TOOL_STR="$TOOL_STR initial_checks:" + + #check for required tools + for BIN in squashfs-tools + do + local TEST=$(which ${BIN}) + [ -z "${TEST}" ] && pinfo "Installing ${BIN}..." && apt-get install ${BIN} + done + + #setup link to remote build directory, later this directory will be rsynced or exported to this server... + if [ ! -d "${SERVER_BUILD_DIR}" ]; then + [ ! -d "${REMOTE_BUILD_DIR}" ] && perror "remote 'builds' directory not foud, exiting." + ln -s "${REMOTE_BUILD_DIR}" "${SERVER_BUILD_DIR}" + fi + + [ ! -d "${SERVER_BOOT_DIR}" ] && mkdir -p "${SERVER_BOOT_DIR}" +} + +generate_stage32() { + local TOOL_STR="${TOOL_STR} generate_stage32:" + [ ! -d "${STAGE32_SQFS_DIR}" ] && mkdir -p "${STAGE32_SQFS_DIR}" + [ -e "${STAGE32_SQFS_DIR}/${TARGET}.sqfs" ] && rm "${STAGE32_SQFS_DIR}/${TARGET}.sqfs" + pinfo "Writing '${TARGET}.sqfs' to '${STAGE32_SQFS_DIR}/${TARGET}.sqfs'" + mksquashfs "${SERVER_BUILD_DIR}/${TARGET}" "${STAGE32_SQFS_DIR}/${TARGET}.sqfs" -comp xz -b 1M -no-recovery >&6 || perror "mksquashfs failed ($?)." + generate_initramfs "${SERVER_BOOT_DIR}/stage32_sqfs" "./mnt/${TARGET}.sqfs" "${SERVER_BOOT_DIR}/initramfs-${TARGET}" +} + +generate_stage31() { + local TOOL_STR="${TOOL_STR} generate_stage31:" + pinfo "Writing 'initramfs-${BUILD}' to '${SERVER_BOOT_DIR}'" + generate_initramfs "${SERVER_BUILD_DIR}/${TARGET}" "." "${SERVER_BOOT_DIR}/initramfs-${TARGET}" +} + +generate_addons() { + local TOOL_STR="${TOOL_STR} generate_addons:" + pinfo "Writing '${TARGET}.sqfs' to '${SERVER_BOOT_DIR}/${TARGET}.sqfs'" + [ -e "${SERVER_BOOT_DIR}/${TARGET}.sqfs" ] && rm "${SERVER_BOOT_DIR}/${TARGET}.sqfs" + mksquashfs "${SERVER_BUILD_DIR}/${TARGET}" "${SERVER_BOOT_DIR}/${TARGET}.sqfs" -comp xz -b 1M -no-recovery >&6 || perror "mksquashfs failed ($?)." +} + +export_target() { + +initial_checks + +TARGET=$1 +[ -d ${SERVER_BUILD_DIR}/${TARGET} ] || perror "Given target directory does not exist: ${SERVER_BUILD_DIR}/${TARGET}" + +case "$2" in + stage31) + generate_stage31 + ;; + stage32) + generate_stage32 + ;; + addons) + generate_addons + ;; +esac + +} + +clean_target() { + TARGET=$1 + + local TOOL_STR="$TOOL_STR clean_target" + pinfo "Cleaning '${SERVER_BUILD_DIR}/${TARGET}'..." + [ -d "${SERVER_BUILD_DIR}/${TARGET}" ] && { rm -rf "${SERVER_BUILD_DIR}/${TARGET}" || perror "rm -rf failed."; } + pinfo "Cleaning '${SERVER_BOOT_DIR}/kernel'..." + [ -e "${SERVER_BOOT_DIR}/kernel" ] && { rm "${SERVER_BOOT_DIR}/kernel" || perror "rm failed."; } + pinfo "Cleaning '${SERVER_BOOT_DIR}/initramfs-${TARGET}'..." + [ -e "${SERVER_BOOT_DIR}/initramfs-${TARGET}" ] && { rm "${SERVER_BOOT_DIR}/initramfs-${TARGET}" || perror "rm failed."; } + pinfo "Cleaning '${SERVER_BOOT_DIR}/${TARGET}.sqfs'..." + [ -e "${SERVER_BOOT_DIR}/${TARGET}.sqfs" ] && { rm "${SERVER_BOOT_DIR}/${TARGET}.sqfs" || perror "rm failed."; } + pinfo "Cleaning '${SERVER_BOOT_DIR}/stage32_dqfs/mnt/${TARGET}.sqfs'..." + [ -e "${SERVER_BOOT_DIR}/stage32_dqfs/mnt/${TARGET}.sqfs" ] && { rm "${SERVER_BOOT_DIR}/stage32_dqfs/mnt/${TARGET}.sqfs" || perror "rm failed."; } +} + |
