summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJonathan Bauer2013-05-29 16:47:01 +0200
committerJonathan Bauer2013-05-29 16:47:01 +0200
commita81ea1f05cb16d257217fffebbf41f0a2a988c57 (patch)
tree9e104de7add36eb28ad5b2c7b877394156426688
parent[stage31] always start networking in stage 3.1 (diff)
parent-.- (diff)
downloadtm-scripts-a81ea1f05cb16d257217fffebbf41f0a2a988c57.tar.gz
tm-scripts-a81ea1f05cb16d257217fffebbf41f0a2a988c57.tar.xz
tm-scripts-a81ea1f05cb16d257217fffebbf41f0a2a988c57.zip
Merge branch 'master' of git:openslx-ng/tm-scripts
-rwxr-xr-xdata/openslx-install (renamed from data/openslx-ng-install)22
-rw-r--r--data/openslx-update54
-rw-r--r--remote/rootfs/rootfs-stage32/data/etc/systemd/system/mount-tmp.service4
l---------remote/rootfs/rootfs-stage32/data/etc/systemd/system/sysinit.target.wants/mount-tmp.service1
-rwxr-xr-xremote/rootfs/rootfs-stage32/data/opt/openslx/bin/analyse-disk96
-rwxr-xr-xremote/rootfs/rootfs-stage32/data/opt/openslx/bin/disk-tmp24
6 files changed, 125 insertions, 76 deletions
diff --git a/data/openslx-ng-install b/data/openslx-install
index 7b8715b7..8d1c04db 100755
--- a/data/openslx-ng-install
+++ b/data/openslx-install
@@ -202,6 +202,12 @@ if [ "x$1" != "x--test" ] && check_password "root" "openslx-ng"; then
done
fi
+if yesno "Soll die aktuellste stabile Version des MiniLinux nach der Einrichtung automatisch heruntergeladen werden?"; then
+ DOWNLOAD_ML=yes
+else
+ DOWNLOAD_ML=no
+fi
+
print ""
print "Beginne Installation"
@@ -269,11 +275,10 @@ HEREEND
# NFS Config
echo "$SLX_VM_PATH *(ro,async,insecure,no_root_squash,no_subtree_check)" > "/etc/exports"
# End NFS Config
- service samba restart
- service nfs-kernel-server restart
- # TODO: Persistent inbound blocking of tcp 139, udp 137,138 to speed up access from Windows Clients
update-rc.d samba defaults
update-rc.d nfs-kernel-server defaults
+ service samba restart
+ service nfs-kernel-server restart
else # external NFS Server for VM Images is used. Disable NFS + Samba
service samba stop
service nfs-kernel-server stop
@@ -282,6 +287,7 @@ else # external NFS Server for VM Images is used. Disable NFS + Samba
update-rc.d nfs-kernel-server disable "$LEVEL"
done
fi
+print "Dienste konfiguriert."
#
# ---- Create boottime system config ----
@@ -290,9 +296,19 @@ print ""
print "Schreibe Bootzeit-Konfiguration für MiniLinux"
cat > "/srv/openslx/www/config" << HEREEND
SLX_VM_NFS='$SLX_VM_NFS'
+SLX_HTTP_ADDR='http://$SLX_LOCAL_ADDR'
HEREEND
+if [[ "$DOWNLOAD_ML" == yes ]]; then
+ print ""
+ print "Lade aktuellste Version des MiniLinux herunter"
+ openslx-update
+fi
+print ""
+print "Das MiniLinux kann jederzeit manuell durch den Befehl openslx-update aktualisiert werden."
+
SLX_LAST_INVOCATION="$(date)"
save_defaults
+print ""
print "Einrichtung abgeschlossen."
diff --git a/data/openslx-update b/data/openslx-update
new file mode 100644
index 00000000..4f8da0f5
--- /dev/null
+++ b/data/openslx-update
@@ -0,0 +1,54 @@
+#!/bin/bash
+
+function print ()
+{
+ echo -e "\033[01;29m$@\033[00m"
+}
+
+function error ()
+{
+ echo -e "\033[01;31m$@\033[00m"
+ exit 1
+}
+
+function warning ()
+{
+ echo -e "\033[01;33m$@\033[00m"
+}
+
+MIRROR="http://mltk.boot.openslx.org"
+REMOTEINDEX="/tmp/mlversion"
+LOCALINDEX="/opt/openslx/local_version"
+WWWTEMP="/srv/openslx/www-temp"
+
+LOCAL_STABLE=0
+LOCAL_TESTING=0
+if [ -s "$LOCALINDEX" ]; then
+ . "$LOCALINDEX" || error "Fehler beim laden der lokalen Versionsinfirmationen aus $LOCALINDEX"
+fi
+
+print ""
+print "Lade Liste aktuell verfügbarer Versionen..."
+rm -f "$REMOTEINDEX"
+wget -O "$REMOTEINDEX" "$MIRROR/index" || error "Konnte Liste verfügbarer Releases nicht herunterladen."
+. "$REMOTEINDEX" || error "Liste verfügbarer Releases Fehlerhaft (konnte $REMOTEINDEX nicht sourcen)"
+
+mkdir -p "$WWWTEMP"
+mv /srv/openslx/www/openslx-* "$WWWTEMP/"
+for REL in ${!AVAILABLE_*}; do
+ BRANCH="${REL#AVAILABLE_}"
+ print "Remote has branch $BRANCH"
+ PXELINE=""
+ for FILE in ${!REL}; do
+ PXELINE="$PXELINE http://"
+ if [ -s "$WWWTEMP/openslx-$FILE" ]; then
+ mv "$WWWTEMP/openslx-$FILE" "/srv/openslx/www/"
+ continue
+ fi
+ wget -O "$WWWTEMP/openslx-$FILE" "$MIRROR/files/$FILE" || warning "Could not download $FILE"
+ done
+ EXTRA="${BRANCH}_EXTRA"
+ for FILE in ${!EXTRA}; do
+ done
+done
+
diff --git a/remote/rootfs/rootfs-stage32/data/etc/systemd/system/mount-tmp.service b/remote/rootfs/rootfs-stage32/data/etc/systemd/system/mount-tmp.service
index 75e285e2..8a45bea1 100644
--- a/remote/rootfs/rootfs-stage32/data/etc/systemd/system/mount-tmp.service
+++ b/remote/rootfs/rootfs-stage32/data/etc/systemd/system/mount-tmp.service
@@ -1,7 +1,9 @@
[Unit]
Description=Mount hard drive as tmp
+Before=sysinit.target shutdown.target
+DefaultDependencies=no
[Service]
Type=oneshot
ExecStart=/opt/openslx/bin/analyse-disk
-ExecStart=/opt/openslx/bin/disk-tmp
+RemainAfterExit=yes
diff --git a/remote/rootfs/rootfs-stage32/data/etc/systemd/system/sysinit.target.wants/mount-tmp.service b/remote/rootfs/rootfs-stage32/data/etc/systemd/system/sysinit.target.wants/mount-tmp.service
new file mode 120000
index 00000000..8ebb27be
--- /dev/null
+++ b/remote/rootfs/rootfs-stage32/data/etc/systemd/system/sysinit.target.wants/mount-tmp.service
@@ -0,0 +1 @@
+../mount-tmp.service \ No newline at end of file
diff --git a/remote/rootfs/rootfs-stage32/data/opt/openslx/bin/analyse-disk b/remote/rootfs/rootfs-stage32/data/opt/openslx/bin/analyse-disk
index 27c3f306..0afe4de8 100755
--- a/remote/rootfs/rootfs-stage32/data/opt/openslx/bin/analyse-disk
+++ b/remote/rootfs/rootfs-stage32/data/opt/openslx/bin/analyse-disk
@@ -14,92 +14,92 @@
#############################################################################
+export PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/openslx/bin:/opt/openslx/sbin:/opt/openslx/usr/bin:/opt/openslx/usr/sbin"
+
# General formatter for the /tmp partition on a local harddisk
diskfm () {
-local target=$1
+local target="$1"
local fs
local path
for fs in xfs ext3 ext2 ; do
unset available
case $(cat /proc/filesystems) in
*${fs}*) available=yes;;
- *) modprobe -q ${fs} 2>/dev/null && available=yes;;
+ *) modprobe "${fs}" && available=yes;;
esac
- if [ -n ${available} ]; then
+ if [ -n "${available}" ]; then
unset found
- for path in /sbin /bin /usr/sbin /usr/bin /openslx/sbin /openslx/bin; do
- if test -x /$path/mkfs.$fs ; then
- found=yes
- case mkfs.$fs in
- mkfs.xfs)
- fopt="-f"
- mopt="-o noexec"
- ;;
- mkfs.ext2)
- fopt="-Fq"
- mopt="-o nocheck,noexec"
- ;;
- mkfs.reiserfs)
- fopt="-f"
- mopt="-o noexec"
- ;;
- esac
- mkfs.$fs ${fopt} ${target} >/dev/null 2>&1 #|| error
- mkdir -p /run/mount/tmp
- mount -t ${fs} ${target} /run/mount/tmp
- fi
- done
+ if which "mkfs.$fs" ; then
+ found=yes
+ case "mkfs.$fs" in
+ mkfs.xfs)
+ fopt="-f"
+ mopt="-o noexec"
+ ;;
+ mkfs.ext2)
+ fopt="-Fq"
+ mopt="-o nocheck,noexec"
+ ;;
+ mkfs.reiserfs)
+ fopt="-f"
+ mopt="-o noexec"
+ ;;
+ esac
+ mkfs.$fs ${fopt} "${target}"
+ fi
[ -n "$found" ] && break
fi
done
}
# Check for local harddisks and appropriate partitions
-fdisk -l |sed -n "/^\/dev\//p" >/etc/disk.partition
+fdisk -l | sed -n "/^\/dev\//p" > "/etc/disk.partition"
# Check for standard swap partitions and make them available to the system
-for hdpartnr in $(cat /etc/disk.partition | \
- sed -n -e "/ 82 /p"|sed -e "s/[[:space:]].*//") ; do
- echo -e "$hdpartnr\tswap\t\tswap\t\tdefaults\t 0 0" >>/etc/fstab
+for hdpartnr in $(sed -n -e "/ 82 /p" "/etc/disk.partition" | sed -e "s/[[:space:]].*//"); do
+ echo -e "$hdpartnr\tswap\t\tswap\t\tdefaults\t 0 0" >> "/etc/fstab"
done
# We use special non assigned partition type (id44) for harddisk scratch
# space, thus no normal filesystem will be incidentally deleted or
# corrupted
-for hdpartnr in $(cat /etc/disk.partition | \
- sed -n -e "/ 44 /p"|sed -e "s/[[:space:]].*//") ; do
+for hdpartnr in $(sed -n -e "/ 44 /p" "/etc/disk.partition" | sed -e "s/[[:space:]].*//"); do
# check for supported filesystem and formatter
- ( if diskfm $hdpartnr ; then
+ if diskfm "$hdpartnr"; then
# echo "$hdpartnr is mounted to /mnt/tmp at $(sysup)" >/tmp/tmpready
- echo -e "$hdpartnr\t/tmp\t\tnoauto\t\tdefaults\t 0 0" >>/etc/fstab
+ echo -e "$hdpartnr\t/tmp\t\tnoauto\t\tdefaults\t 0 0" >> "/etc/fstab"
+ mkdir -p /tmptmp
+ mv /tmp/* /tmp/.* /tmptmp/
+ mount "$hdpartnr" /tmp
+ chmod a+rwxt /tmp
+ mv /tmptmp/* /tmp/
+ rmdir /tmptmp
+ break
else
- echo "formatting failed for some reason " >/tmp/tmpready
- fi ) &
- break
+ echo "formatting failed for some reason"
+ fi # Made this non-forking, systemd should handle it - 2013-05-28
done
# Put detected linux partitions (83) into /etc/fstab with "noauto", special
# partition 45 (persistent scratch) to /var/scratch and 46 to /var/openslx
for partid in 83 45 46 ; do
- for hdpartnr in $(cat /etc/disk.partition | \
- sed -n -e "/ ${partid} /p"|sed -e "s/[[:space:]].*//") ; do
- mkdir -p /media/${hdpartnr#/dev/*} 2>/dev/null
- if [ ${partid} -eq 83 ] ; then
- echo -e "$hdpartnr\t/media/${hdpartnr#/dev/*}\tauto\t\tnoauto,\
-noexec\t 0 0" >>/tmp/fstab
- elif [ ${partid} -eq 45 ] ; then
+ for hdpartnr in $(sed -n -e "/ ${partid} /p" "/etc/disk.partition" | sed -e "s/[[:space:]].*//"); do
+ mkdir -p "/media/${hdpartnr#/dev/*}"
+ if [ "${partid}" -eq 83 ]; then
+ echo -e "$hdpartnr\t/media/${hdpartnr#/dev/*}\tauto\t\tnoauto,noexec\t 0 0" >> "/etc/fstab"
+ elif [ "${partid}" -eq 45 ]; then
#mount -t auto ${hdpartnr} /media/${hdpartnr#/dev/*}
#ln -sf /media/${hdpartnr#/dev/*} /var/scratch
- echo -e "${hdpartnr}\t/media/${hdpartnr#/dev/*}\tauto\t\tnoauto\
-\t\t 0 0" >>/tmp/fstab
- elif [ ${partid} -eq 46 ] ; then
+ echo -e "${hdpartnr}\t/media/${hdpartnr#/dev/*}\tauto\t\tnoauto\t\t 0 0" >> "/etc/fstab"
+ elif [ "${partid}" -eq 46 ]; then
# Mount a home directory to (/mnt)/var/home
#mount -t auto ${hdpartnr} /mnt/media/${hdpartnr#/dev/*} \n\
#test -d /mnt/media/${hdpartnr#/dev/*}/home && \
# ln -sf /media/${hdpartnr#/dev/*} /var/home
- echo -e "${hdpartnr}\t/media/${hdpartnr#/dev/*}\tauto\t\tnoauto\
-\t\t 0 0" >>/tmp/fstab
+ echo -e "${hdpartnr}\t/media/${hdpartnr#/dev/*}\tauto\t\tnoauto\t\t 0 0" >> "/etc/fstab"
fi
done
done
+mount -a
+
diff --git a/remote/rootfs/rootfs-stage32/data/opt/openslx/bin/disk-tmp b/remote/rootfs/rootfs-stage32/data/opt/openslx/bin/disk-tmp
deleted file mode 100755
index 4378c45c..00000000
--- a/remote/rootfs/rootfs-stage32/data/opt/openslx/bin/disk-tmp
+++ /dev/null
@@ -1,24 +0,0 @@
-#!/bin/sh
-# Copyright (c) 2013 - 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 under http://openslx.org
-#
-# Mount local ID44 partition to /tmp after all existing stuff is preserved
-
-#############################################################################
-
-# Check if ID44 is available by analysing /etc/fstab for appropriate entry
-if cat /proc/mounts | grep -qe "/dev/.*/tmp" ; then
- mkdir -p /run/tmp
- mv /tmp/* /run/tmp
- mount --bind /run/mount/tmp /tmp
- umount /run/mount/tmp
- mv /run/tmp/* /tmp
- rmdir /run/tmp
-fi