summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorroot2013-08-01 17:31:28 +0200
committerroot2013-08-01 17:31:28 +0200
commit6ddfa7c4e9e802d5a2202ffd8a8eb609a649d7f6 (patch)
treeeabd0e401d2e34232caef67923299c88816b1ed7
parent[stage32-scientific] Added stage target for Scientific Linux (diff)
parent[rootfs-stage32] added /etc/nsswitch.conf with standard config (diff)
downloadtm-scripts-6ddfa7c4e9e802d5a2202ffd8a8eb609a649d7f6.tar.gz
tm-scripts-6ddfa7c4e9e802d5a2202ffd8a8eb609a649d7f6.tar.xz
tm-scripts-6ddfa7c4e9e802d5a2202ffd8a8eb609a649d7f6.zip
Merge branch 'master' of git.openslx.org:openslx-ng/tm-scripts
-rwxr-xr-xmltk19
-rw-r--r--remote/modules/debug/data/etc/systemd/system/debug-shell.service1
-rw-r--r--remote/modules/german/data/etc/systemd/system/load-german-keymap.service2
-rwxr-xr-xremote/modules/german/data/opt/openslx/scripts/systemd-load_german_keymaps (renamed from remote/modules/german/data/opt/openslx/scripts/load_german_keymaps)0
l---------remote/modules/redsocks/data/etc/systemd/system/basic.target.wants/setup-proxy.service1
l---------remote/modules/redsocks/data/etc/systemd/system/basic.target.wants/setup_proxy.service1
-rw-r--r--remote/modules/redsocks/data/etc/systemd/system/setup-proxy.service (renamed from remote/modules/redsocks/data/etc/systemd/system/setup_proxy.service)2
-rwxr-xr-xremote/modules/redsocks/data/opt/openslx/scripts/systemd-setup_proxy (renamed from remote/modules/redsocks/data/opt/openslx/scripts/setup_proxy)0
-rw-r--r--remote/modules/systemd/data/etc/systemd/system/nfs-mount.service2
-rw-r--r--remote/modules/systemd/data/etc/systemd/system/udhcpc@.service2
-rw-r--r--remote/modules/vmchooser/data/etc/systemd/system/var-lib-virt.service4
-rwxr-xr-xremote/modules/vmchooser/data/opt/openslx/scripts/systemd-mount_vm_store (renamed from remote/modules/vmchooser/data/opt/openslx/bin/mount-lib-virt)0
-rw-r--r--remote/rootfs/rootfs-stage32/data/etc/nsswitch.conf19
-rw-r--r--remote/rootfs/rootfs-stage32/data/etc/systemd/system/download-config.service8
-rw-r--r--remote/rootfs/rootfs-stage32/data/etc/systemd/system/load-gfx-driver.service2
-rw-r--r--remote/rootfs/rootfs-stage32/data/etc/systemd/system/ntpdate.service2
-rw-r--r--remote/rootfs/rootfs-stage32/data/etc/systemd/system/setup-partitions.service (renamed from remote/rootfs/rootfs-stage32/data/etc/systemd/system/mount-tmp.service)4
l---------remote/rootfs/rootfs-stage32/data/etc/systemd/system/sysinit.target.wants/mount-tmp.service1
l---------remote/rootfs/rootfs-stage32/data/etc/systemd/system/sysinit.target.wants/setup-partitions.service1
-rwxr-xr-xremote/rootfs/rootfs-stage32/data/opt/openslx/scripts/mountexport17
-rwxr-xr-xremote/rootfs/rootfs-stage32/data/opt/openslx/scripts/nettime22
-rwxr-xr-xremote/rootfs/rootfs-stage32/data/opt/openslx/scripts/systemd-load_gfx_driver (renamed from remote/rootfs/rootfs-stage32/data/opt/openslx/scripts/load-gfx-driver)0
-rwxr-xr-xremote/rootfs/rootfs-stage32/data/opt/openslx/scripts/systemd-mount_export (renamed from remote/rootfs/rootfs-stage32/data/opt/openslx/bin/mountexport)0
-rwxr-xr-xremote/rootfs/rootfs-stage32/data/opt/openslx/scripts/systemd-setup_network_time (renamed from remote/rootfs/rootfs-stage32/data/opt/openslx/bin/nettime)2
-rwxr-xr-xremote/rootfs/rootfs-stage32/data/opt/openslx/scripts/systemd-setup_partitions (renamed from remote/rootfs/rootfs-stage32/data/opt/openslx/scripts/analyse-disk)0
-rwxr-xr-xremote/rootfs/rootfs-stage32/data/opt/openslx/scripts/systemd-udhcpc++ (renamed from remote/rootfs/rootfs-stage32/data/opt/openslx/scripts/dhcp++)2
-rwxr-xr-xremote/rootfs/rootfs-stage32/data/opt/openslx/scripts/udhcpc-openslx (renamed from remote/rootfs/rootfs-stage32/data/opt/openslx/bin/udhcpc.openslx.script)0
-rwxr-xr-xremote/rootfs/rootfs-stage32/data/opt/openslx/scripts/udhcpc-openslx-script174
-rw-r--r--server/.gitignore2
-rw-r--r--server/configs/config.tgzbin6661 -> 0 bytes
l---------server/configs/freiburg/pam-freiburg (renamed from server/configs/freiburg/pam)0
-rwxr-xr-xserver/export_target116
32 files changed, 122 insertions, 284 deletions
diff --git a/mltk b/mltk
index 28578381..ee965f49 100755
--- a/mltk
+++ b/mltk
@@ -162,7 +162,7 @@ read_params() {
if [[ $1 != "-"* ]]; then
TARGET=$1
shift
- elif [[ $1 != "-s" ]] && [[ $1 != "-n" ]]; then
+ elif [[ $1 != "-s" && $1 != "-n" && $1 != "-k" ]]; then
perror "A target is required. None given."
fi
@@ -174,9 +174,16 @@ read_params() {
# options to current target
if [[ "$PARAM" == "-"* ]]; then
case "$PARAM" in
+ -k)
+ [ "$MODE" != "SERVER" ] && perror "-k can only be used in server mode"
+ # NOTE: check for validity of config is done in 'inital_checks' of server/export_target
+ SERVER_CONFIG_TYPE="$1"
+ SERVER_CONFIG="1"
+ shift
+ continue
+ ;;
-s)
SERVER_SYNC="1"
- #TODO mit Remote IP
continue
;;
-c)
@@ -206,8 +213,6 @@ read_params() {
SERVER_EXPORT="1"
SERVER_EXPORT_TYPE="$1"
shift
- SERVER_EXPORT_CONFIG="$1"
- shift
continue
;;
-n)
@@ -242,7 +247,7 @@ read_params() {
# exit if no command
- [[ $SERVER_CLEAN == 0 && $SERVER_EXPORT == 0 && $REMOTE_CLEAN == 0 && $REMOTE_BUILD == 0 && $SERVER_SYNC == 0 && $REMOTE_EXPORT == 0 ]] && print_usage && exit 1
+ [[ $SERVER_CLEAN == 0 && $SERVER_EXPORT == 0 && $REMOTE_CLEAN == 0 && $REMOTE_BUILD == 0 && $SERVER_SYNC == 0 && $REMOTE_EXPORT == 0 && $SERVER_CONFIG == 0 ]] && print_usage && exit 1
}
run() {
@@ -253,12 +258,13 @@ run() {
[[ $REMOTE_BUILD == 1 ]] && generate_target $TARGET $REMOTE_LIST_BUILD
[[ $REMOTE_EXPORT == 1 ]] && export_builds
fi
- if [[ $SERVER_CLEAN == 1 || $SERVER_EXPORT == 1 || $SERVER_SYNC == 1 ]]; then
+ if [[ $SERVER_CLEAN == 1 || $SERVER_EXPORT == 1 || $SERVER_SYNC == 1 || $SERVER_CONFIG == 1 ]]; then
[[ $SERVER_DEBUG == 1 ]] && unset_quiet || set_quiet
. "${SERVER_EXPORT_TARGET}" || perror "Cannot source ${SERVER_EXPORT_TARGET}"
[[ $SERVER_SYNC == 1 ]] && sync_remote
[[ $SERVER_CLEAN == 1 ]] && clean_target $TARGET
[[ $SERVER_EXPORT == 1 ]] && export_target $TARGET $SERVER_EXPORT_TYPE
+ [[ $SERVER_CONFIG == 1 ]] && echo "LASFKHSL" && generate_config $SERVER_CONFIG_TYPE
fi
}
@@ -267,6 +273,7 @@ SERVER_EXPORT="0"
SERVER_CLEAN="0"
SERVER_EXPORT_TYPE=""
SERVER_SYNC="0"
+SERVER_CONFIG="0"
REMOTE_DEBUG="0"
REMOTE_CLEAN="0"
REMOTE_BUILD="0"
diff --git a/remote/modules/debug/data/etc/systemd/system/debug-shell.service b/remote/modules/debug/data/etc/systemd/system/debug-shell.service
index fedd138d..6d50b3bd 100644
--- a/remote/modules/debug/data/etc/systemd/system/debug-shell.service
+++ b/remote/modules/debug/data/etc/systemd/system/debug-shell.service
@@ -12,7 +12,6 @@ DefaultDependencies=no
IgnoreOnIsolate=yes
[Service]
-Environment=TERM=linux PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/openslx/sbin:/opt/openslx/bin:/opt/openslx/usr/sbin:/opt/openslx/usr/bin
ExecStart=/bin/sh
Restart=always
RestartSec=0
diff --git a/remote/modules/german/data/etc/systemd/system/load-german-keymap.service b/remote/modules/german/data/etc/systemd/system/load-german-keymap.service
index e31406fb..c26346fe 100644
--- a/remote/modules/german/data/etc/systemd/system/load-german-keymap.service
+++ b/remote/modules/german/data/etc/systemd/system/load-german-keymap.service
@@ -7,4 +7,4 @@ Before=shutdown.target
[Service]
Type=oneshot
RemainAfterExit=yes
-ExecStart=/opt/openslx/scripts/load_german_keymaps
+ExecStart=/opt/openslx/scripts/systemd-load_german_keymaps
diff --git a/remote/modules/german/data/opt/openslx/scripts/load_german_keymaps b/remote/modules/german/data/opt/openslx/scripts/systemd-load_german_keymaps
index c7dbbb33..c7dbbb33 100755
--- a/remote/modules/german/data/opt/openslx/scripts/load_german_keymaps
+++ b/remote/modules/german/data/opt/openslx/scripts/systemd-load_german_keymaps
diff --git a/remote/modules/redsocks/data/etc/systemd/system/basic.target.wants/setup-proxy.service b/remote/modules/redsocks/data/etc/systemd/system/basic.target.wants/setup-proxy.service
new file mode 120000
index 00000000..0da8d078
--- /dev/null
+++ b/remote/modules/redsocks/data/etc/systemd/system/basic.target.wants/setup-proxy.service
@@ -0,0 +1 @@
+../setup-proxy.service \ No newline at end of file
diff --git a/remote/modules/redsocks/data/etc/systemd/system/basic.target.wants/setup_proxy.service b/remote/modules/redsocks/data/etc/systemd/system/basic.target.wants/setup_proxy.service
deleted file mode 120000
index 0c7dc84b..00000000
--- a/remote/modules/redsocks/data/etc/systemd/system/basic.target.wants/setup_proxy.service
+++ /dev/null
@@ -1 +0,0 @@
-../setup_proxy.service \ No newline at end of file
diff --git a/remote/modules/redsocks/data/etc/systemd/system/setup_proxy.service b/remote/modules/redsocks/data/etc/systemd/system/setup-proxy.service
index 2a06058b..54052425 100644
--- a/remote/modules/redsocks/data/etc/systemd/system/setup_proxy.service
+++ b/remote/modules/redsocks/data/etc/systemd/system/setup-proxy.service
@@ -5,5 +5,5 @@ DefaultDependencies=no
[Service]
Type=oneshot
-ExecStart=/opt/openslx/scripts/setup_proxy
+ExecStart=/opt/openslx/scripts/systemd-setup_proxy
RemainAfterExit=yes
diff --git a/remote/modules/redsocks/data/opt/openslx/scripts/setup_proxy b/remote/modules/redsocks/data/opt/openslx/scripts/systemd-setup_proxy
index 6c39c077..6c39c077 100755
--- a/remote/modules/redsocks/data/opt/openslx/scripts/setup_proxy
+++ b/remote/modules/redsocks/data/opt/openslx/scripts/systemd-setup_proxy
diff --git a/remote/modules/systemd/data/etc/systemd/system/nfs-mount.service b/remote/modules/systemd/data/etc/systemd/system/nfs-mount.service
index 0d537e2a..d597fa4b 100644
--- a/remote/modules/systemd/data/etc/systemd/system/nfs-mount.service
+++ b/remote/modules/systemd/data/etc/systemd/system/nfs-mount.service
@@ -4,4 +4,4 @@ Description=Mount NFS Share [TEST]
[Service]
Type=oneshot
RemainAfterExit=yes
-ExecStart=/opt/openslx/scripts/mountexport
+ExecStart=/opt/openslx/scripts/systemd-mount_export
diff --git a/remote/modules/systemd/data/etc/systemd/system/udhcpc@.service b/remote/modules/systemd/data/etc/systemd/system/udhcpc@.service
index a7d6c324..0b198476 100644
--- a/remote/modules/systemd/data/etc/systemd/system/udhcpc@.service
+++ b/remote/modules/systemd/data/etc/systemd/system/udhcpc@.service
@@ -4,7 +4,7 @@ Description=DHCP Client
[Service]
Type=forking
PIDFile=/run/udhcpc/udhcpc.%I.pid
-ExecStart=/opt/openslx/scripts/dhcp++ %I
+ExecStart=/opt/openslx/scripts/systemd-udhcpc++ %I
ExecStopPost=/bin/rm /run/udhcpc/udhcpc.%I.pid
[Install]
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
index 8746629c..cfaa7af8 100644
--- a/remote/modules/vmchooser/data/etc/systemd/system/var-lib-virt.service
+++ b/remote/modules/vmchooser/data/etc/systemd/system/var-lib-virt.service
@@ -1,5 +1,5 @@
[Unit]
-Description=Mount vm-store NFS
+Description=Mount VM store per NFS
After=download-config.service network.target
Requires=network.target
DefaultDependencies=no
@@ -7,4 +7,4 @@ ConditionPathExists=/run/udhcpc/network-ready
[Service]
Type=oneshot
-ExecStart=/opt/openslx/bin/mount-lib-virt
+ExecStart=/opt/openslx/scripts/systemd-mount_vm_store
diff --git a/remote/modules/vmchooser/data/opt/openslx/bin/mount-lib-virt b/remote/modules/vmchooser/data/opt/openslx/scripts/systemd-mount_vm_store
index 27a8f55c..27a8f55c 100755
--- a/remote/modules/vmchooser/data/opt/openslx/bin/mount-lib-virt
+++ b/remote/modules/vmchooser/data/opt/openslx/scripts/systemd-mount_vm_store
diff --git a/remote/rootfs/rootfs-stage32/data/etc/nsswitch.conf b/remote/rootfs/rootfs-stage32/data/etc/nsswitch.conf
new file mode 100644
index 00000000..6886def9
--- /dev/null
+++ b/remote/rootfs/rootfs-stage32/data/etc/nsswitch.conf
@@ -0,0 +1,19 @@
+# /etc/nsswitch.conf
+#
+# Example configuration of GNU Name Service Switch functionality.
+# If you have the `glibc-doc-reference' and `info' packages installed, try:
+# `info libc "Name Service Switch"' for information about this file.
+
+passwd: compat
+group: compat
+shadow: compat
+
+hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4
+networks: files
+
+protocols: db files
+services: db files
+ethers: db files
+rpc: db files
+
+netgroup: nis
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
deleted file mode 100644
index ef8fb438..00000000
--- a/remote/rootfs/rootfs-stage32/data/etc/systemd/system/download-config.service
+++ /dev/null
@@ -1,8 +0,0 @@
-[Unit]
-Description=Parse kernel command line for config URL and download
-DefaultDependencies=no
-
-[Service]
-Type=oneshot
-RemainAfterExit=yes
-ExecStart=/opt/openslx/scripts/activate-sysconfig
diff --git a/remote/rootfs/rootfs-stage32/data/etc/systemd/system/load-gfx-driver.service b/remote/rootfs/rootfs-stage32/data/etc/systemd/system/load-gfx-driver.service
index 93641cee..0534f45c 100644
--- a/remote/rootfs/rootfs-stage32/data/etc/systemd/system/load-gfx-driver.service
+++ b/remote/rootfs/rootfs-stage32/data/etc/systemd/system/load-gfx-driver.service
@@ -5,5 +5,5 @@ DefaultDependencies=no
[Service]
Type=oneshot
-ExecStart=/opt/openslx/scripts/load-gfx-driver
+ExecStart=/opt/openslx/scripts/systemd-load_gfx_driver
RemainAfterExit=yes
diff --git a/remote/rootfs/rootfs-stage32/data/etc/systemd/system/ntpdate.service b/remote/rootfs/rootfs-stage32/data/etc/systemd/system/ntpdate.service
index 69b1ba33..a48375d0 100644
--- a/remote/rootfs/rootfs-stage32/data/etc/systemd/system/ntpdate.service
+++ b/remote/rootfs/rootfs-stage32/data/etc/systemd/system/ntpdate.service
@@ -7,4 +7,4 @@ ConditionPathExists=/run/udhcpc/network-ready
[Service]
Type=oneshot
RemainAfterExit=yes
-ExecStart=/opt/openslx/scripts/nettime
+ExecStart=/opt/openslx/scripts/systemd-setup_network_time
diff --git a/remote/rootfs/rootfs-stage32/data/etc/systemd/system/mount-tmp.service b/remote/rootfs/rootfs-stage32/data/etc/systemd/system/setup-partitions.service
index 070e3e1f..20e789a4 100644
--- a/remote/rootfs/rootfs-stage32/data/etc/systemd/system/mount-tmp.service
+++ b/remote/rootfs/rootfs-stage32/data/etc/systemd/system/setup-partitions.service
@@ -1,10 +1,10 @@
[Unit]
-Description=Mount hard drive as tmp
+Description=Setup local disk partitions (tmp, swap)
After=sysinit.target
Before=shutdown.target
DefaultDependencies=no
[Service]
Type=oneshot
-ExecStart=/opt/openslx/scripts/analyse-disk
+ExecStart=/opt/openslx/scripts/systemd-setup_partitions
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
deleted file mode 120000
index 8ebb27be..00000000
--- a/remote/rootfs/rootfs-stage32/data/etc/systemd/system/sysinit.target.wants/mount-tmp.service
+++ /dev/null
@@ -1 +0,0 @@
-../mount-tmp.service \ No newline at end of file
diff --git a/remote/rootfs/rootfs-stage32/data/etc/systemd/system/sysinit.target.wants/setup-partitions.service b/remote/rootfs/rootfs-stage32/data/etc/systemd/system/sysinit.target.wants/setup-partitions.service
new file mode 120000
index 00000000..af2957f8
--- /dev/null
+++ b/remote/rootfs/rootfs-stage32/data/etc/systemd/system/sysinit.target.wants/setup-partitions.service
@@ -0,0 +1 @@
+../setup-partitions.service \ No newline at end of file
diff --git a/remote/rootfs/rootfs-stage32/data/opt/openslx/scripts/mountexport b/remote/rootfs/rootfs-stage32/data/opt/openslx/scripts/mountexport
deleted file mode 100755
index 64d5f485..00000000
--- a/remote/rootfs/rootfs-stage32/data/opt/openslx/scripts/mountexport
+++ /dev/null
@@ -1,17 +0,0 @@
-#!/bin/bash
-
-export PATH=$PATH:/opt/openslx/usr/sbin:/opt/openslx/usr/bin:/opt/openslx/sbin:/opt/openslx/bin
-
-if grep "Ubuntu 13.04" "/etc/issue" >/dev/null; then
- EXPORT="132.230.8.113:/srv/ubuntu1304"
-elif grep "SUSE" "/etc/issue" >/dev/null; then
- EXPORT="132.230.8.113:/srv/suse"
-else
- echo "Could not determine System"
- exit 1
-fi
-
-echo "Mounting ${EXPORT} to /opt/openslx/mnt"
-mount -t nfs -o ro,async,nolock,vers=3 "$EXPORT" /opt/openslx/mnt || { echo "Fail." && exit 1; }
-echo "Appending /opt/openslx/mnt to /"
-mount -o remount,append:/opt/openslx/mnt=ro / || { echo "Fail." && exit 1; }
diff --git a/remote/rootfs/rootfs-stage32/data/opt/openslx/scripts/nettime b/remote/rootfs/rootfs-stage32/data/opt/openslx/scripts/nettime
deleted file mode 100755
index 3ca13931..00000000
--- a/remote/rootfs/rootfs-stage32/data/opt/openslx/scripts/nettime
+++ /dev/null
@@ -1,22 +0,0 @@
-#!/bin/sh
-
-. /opt/openslx/config || { echo "Could not source config!"; exit 1; }
-SLX_NTP_SERVER="$SLX_NTP_SERVER time.uni-freiburg.de 0.de.pool.ntp.org"
-for SERVER in $SLX_NTP_SERVER; do
- if ntpdate -u -b "$SERVER"; then
- echo "Successfully queried $SERVER for time."
- if [ "x$SLX_BIOS_CLOCK" = "xlocal" ]; then
- sleep 1
- hwclock -l -w || echo "... but could not set BIOS clock to localtime"
- elif [ "x$SLX_BIOS_CLOCK" = "xutc" ]; then
- sleep 1
- hwclock -u -w || echo "... but could not set BIOS clock to UTC"
- fi
- exit 0
- fi
- echo "Error querying $SERVER for current time"
-done
-
-echo "No more servers to try. No NTP server was reachable." >&2
-exit 1
-
diff --git a/remote/rootfs/rootfs-stage32/data/opt/openslx/scripts/load-gfx-driver b/remote/rootfs/rootfs-stage32/data/opt/openslx/scripts/systemd-load_gfx_driver
index 04fbea6e..04fbea6e 100755
--- a/remote/rootfs/rootfs-stage32/data/opt/openslx/scripts/load-gfx-driver
+++ b/remote/rootfs/rootfs-stage32/data/opt/openslx/scripts/systemd-load_gfx_driver
diff --git a/remote/rootfs/rootfs-stage32/data/opt/openslx/bin/mountexport b/remote/rootfs/rootfs-stage32/data/opt/openslx/scripts/systemd-mount_export
index 64d5f485..64d5f485 100755
--- a/remote/rootfs/rootfs-stage32/data/opt/openslx/bin/mountexport
+++ b/remote/rootfs/rootfs-stage32/data/opt/openslx/scripts/systemd-mount_export
diff --git a/remote/rootfs/rootfs-stage32/data/opt/openslx/bin/nettime b/remote/rootfs/rootfs-stage32/data/opt/openslx/scripts/systemd-setup_network_time
index 3ca13931..3e644abd 100755
--- a/remote/rootfs/rootfs-stage32/data/opt/openslx/bin/nettime
+++ b/remote/rootfs/rootfs-stage32/data/opt/openslx/scripts/systemd-setup_network_time
@@ -1,7 +1,7 @@
#!/bin/sh
. /opt/openslx/config || { echo "Could not source config!"; exit 1; }
-SLX_NTP_SERVER="$SLX_NTP_SERVER time.uni-freiburg.de 0.de.pool.ntp.org"
+SLX_NTP_SERVER="$SLX_NTP_SERVER 0.de.pool.ntp.org"
for SERVER in $SLX_NTP_SERVER; do
if ntpdate -u -b "$SERVER"; then
echo "Successfully queried $SERVER for time."
diff --git a/remote/rootfs/rootfs-stage32/data/opt/openslx/scripts/analyse-disk b/remote/rootfs/rootfs-stage32/data/opt/openslx/scripts/systemd-setup_partitions
index f162ec3a..f162ec3a 100755
--- a/remote/rootfs/rootfs-stage32/data/opt/openslx/scripts/analyse-disk
+++ b/remote/rootfs/rootfs-stage32/data/opt/openslx/scripts/systemd-setup_partitions
diff --git a/remote/rootfs/rootfs-stage32/data/opt/openslx/scripts/dhcp++ b/remote/rootfs/rootfs-stage32/data/opt/openslx/scripts/systemd-udhcpc++
index 8a03ce98..ddb6759f 100755
--- a/remote/rootfs/rootfs-stage32/data/opt/openslx/scripts/dhcp++
+++ b/remote/rootfs/rootfs-stage32/data/opt/openslx/scripts/systemd-udhcpc++
@@ -7,4 +7,4 @@ UDHCPC_OPTS=""
[ ! -z "$NET_IP" ] && UDHCPC_OPTS=" -r $NET_IP "
echo "udhcp++: running on $NET_IF with additional params $UDHCPC_OPTS" >> "/tmp/udhcpclog"
mkdir -p /run/udhcpc
-/opt/openslx/sbin/udhcpc $UDHCPC_OPTS -O domain -O nissrv -O nisdomain -O wpad -t 8 -s /opt/openslx/scripts/udhcpc-openslx-script -i "$NET_IF" -p "/run/udhcpc/udhcpc.$NET_IF.pid"
+/opt/openslx/sbin/udhcpc $UDHCPC_OPTS -O domain -O nissrv -O nisdomain -O wpad -t 8 -s /opt/openslx/scripts/udhcpc-openslx -i "$NET_IF" -p "/run/udhcpc/udhcpc.$NET_IF.pid"
diff --git a/remote/rootfs/rootfs-stage32/data/opt/openslx/bin/udhcpc.openslx.script b/remote/rootfs/rootfs-stage32/data/opt/openslx/scripts/udhcpc-openslx
index 1bbf6e80..1bbf6e80 100755
--- a/remote/rootfs/rootfs-stage32/data/opt/openslx/bin/udhcpc.openslx.script
+++ b/remote/rootfs/rootfs-stage32/data/opt/openslx/scripts/udhcpc-openslx
diff --git a/remote/rootfs/rootfs-stage32/data/opt/openslx/scripts/udhcpc-openslx-script b/remote/rootfs/rootfs-stage32/data/opt/openslx/scripts/udhcpc-openslx-script
deleted file mode 100755
index 1bbf6e80..00000000
--- a/remote/rootfs/rootfs-stage32/data/opt/openslx/scripts/udhcpc-openslx-script
+++ /dev/null
@@ -1,174 +0,0 @@
-#!/bin/bash
-# -----------------------------------------------------------------------------
-#
-# Copyright (c) 2011 - 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 suggestions, praise, or complaints to feedback@openslx.org
-#
-# General information about OpenSLX can be found at http://openslx.org/
-# -----------------------------------------------------------------------------
-#
-# Mini-Linux Toolkit
-#
-# -----------------------------------------------------------------------------
-
-. /opt/openslx/config
-
-RESOLV_CONF="/etc/resolv.conf"
-THISFILE="/run/udhcpc/${interface}.resolv"
-
-echo "$interface [$1] $ip" >> "/tmp/udhcpclog"
-
-rebuild_resolv_conf () {
- # Maybe make this smarter some time, if anyone is using client's that are on multiple networks at once etc...
- # This is a little braindead but should work most of the time
- sort -u /run/udhcpc/*.resolv > "$RESOLV_CONF"
-}
-
-escape_search() {
- echo "$@" | sed -e 's/[]\/()$*.^|[]/\\&/g'
-}
-
-escape_replace() {
- echo "$@" | sed -e 's/[\/&]/\\&/g'
-}
-
-case "$1" in
- bound|renew)
- ip addr add "$ip/$(ipcalc -s -p $ip $subnet|sed s/.*=//)" dev "$interface"
- if [ -n "$router" ]; then
- ip route add default via "$router"
- fi
-
- # Update resolver configuration file
- CONF=""
- if [ -n "$domain" ]; then
- printf -v CONF "domain $domain\nsearch $domain\n"
- elif [ -n "$SLX_NET_DOMAIN" ]; then
- printf -v CONF "domain $SLX_NET_DOMAIN\nsearch $SLX_NET_DOMAIN\n"
- fi
- for i in $dns; do
- echo "$0: Adding DNS $i"
- printf -v CONF "${CONF}nameserver $i\n"
- done
-
- if [ -x /sbin/resolvconf ]; then
- # Automatic handling :-)
- echo -n "$CONF" | resolvconf -a "${interface}.udhcpc"
- else
- # Manual handling required :-(
- mkdir -p "/run/udhcpc"
- echo -n "$CONF" > "$THISFILE"
- rebuild_resolv_conf
- fi
-
- # Things that should only happen for the main interface that was used for booting
- if [ "$interface" == "br0" ]; then
- #update ip
- sed -i "s/^\(SLX_PXE_CLIENT_IP=\).*$/\1'$ip'/" /opt/openslx/config
-
- #update hostname
- dns_host=$(rdns "$ip")
- if [ -z "$dns_host" ]; then
- # fallback to what the dhcp told us
- dns_host="$hostname"
- fi
- if [ -n "$dns_host" ]; then
- echo "$dns_host" > "/proc/sys/kernel/hostname"
- echo "$dns_host" > "/etc/hostname"
- if grep '^SLX_HOSTNAME=' /opt/openslx/config 2>/dev/null; then
- sed -i "s/^\(SLX_HOSTNAME=\).*$/\1'$dns_host'/" /opt/openslx/config
- else
- echo "# Config written by openslx-dhcp-script (1)" >> /opt/openslx/config
- echo "SLX_HOSTNAME='$dns_host'" >> /opt/openslx/config
- fi
- fi
- fi
-
- # Hostname in /etc/hosts
- touch /etc/hosts
- if [ -n "$dns_host" ]; then
- short="${dns_host%%.*}"
- [ "x$short" = "x$dns_host" ] && short=""
- sed -i -r "s/\s$(escape_search "$dns_host")(\s|$)/ /g" /etc/hosts
- [ -n "$short" ] && sed -i -r "s/\s$(escape_search "$short")(\s|$)/ /g" /etc/hosts
- if grep -q -E "^$ip\s" /etc/hosts; then
- sed -i "s/^$(escape_search "$ip")\s/$(escape_replace "$ip $dns_host $short ")/g" /etc/hosts
- else
- echo "$ip $dns_host $short" >> /etc/hosts
- fi
- fi
- if [ -n "$hostname" -a "x$hostname" != "x$dns_host" ]; then
- short="${hostname%%.*}"
- [ "x$short" = "x$hostname" ] && short=""
- sed -i -r "s/\s$(escape_search "$hostname")(\s|$)/ /g" /etc/hosts
- [ -n "$short" ] && sed -i -r "s/\s$(escape_search "$short")(\s|$)/ /g" /etc/hosts
- if grep -q -E "^$ip\s" /etc/hosts; then
- sed -i "s/^$(escape_search "$ip")\s/$(escape_replace "$ip $hostname $short ")/g" /etc/hosts
- else
- echo "$ip $hostname $short" >> /etc/hosts
- fi
- fi
- sed -i -r '/^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+\s*$/d' /etc/hosts
-
- # We consider the network setup to be complete if an interface is being configured that
- # has a default route and some dns servers set.
- if [ -n "$router" ] && [ -n "$dns" ] && [ ! -e "/run/udhcpc/network-ready" ]; then
- touch "/run/udhcpc/network-ready"
- # Write to openslx-config
- echo "# Config written by openslx-dhcp-script (2)" >> /opt/openslx/config
- echo "SLX_DNS='$dns'" >> /opt/openslx/config
-
- # TODO: This mounts stage4. Current method is for testing purposes only.
- # when going productive, this has to happen after user login, if the
- # user selects a native linux session.
- if [ "x$(grep -ci mount /proc/cmdline)" != "x0" ]; then
- systemctl start nfs-mount.service &
- fi
- # Mark network target as reached
- systemctl start network.target
- fi
-
- ;;
-
- deconfig)
- if [ $(grep -c "nfs=" /proc/cmdline) == 0 ]; then
- echo 1 > "/proc/sys/net/ipv4/conf/$interface/promote_secondaries"
- clientip=${ip%%:*}
- ip addr del "$clientip/$(ipcalc -s -p $clientip $subnet|sed s/.*=//)" dev "$interface"
- else
- echo "NFS is active, not removing old ip adress. warning: lease may expire after a while."
- fi
-
- if [ -x /sbin/resolvconf ]; then
- # Automatic handling :-)
- resolvconf -d "${interface}.udhcpc"
- else
- # Manual handling required :-(
- rm -f "$THISFILE"
- rebuild_resolv_conf
- fi
-
- ;;
-
- leasefail)
- echo "$0: Lease failed: $message"
-
- ;;
-
- nak)
- echo "$0: Received a NAK: $message"
-
- ;;
-
- *)
- echo "$0: Unknown udhcpc command: $1";
- exit 1;
-
- ;;
-esac
-
diff --git a/server/.gitignore b/server/.gitignore
new file mode 100644
index 00000000..3422c782
--- /dev/null
+++ b/server/.gitignore
@@ -0,0 +1,2 @@
+config.tgz
+
diff --git a/server/configs/config.tgz b/server/configs/config.tgz
deleted file mode 100644
index 01ad15a6..00000000
--- a/server/configs/config.tgz
+++ /dev/null
Binary files differ
diff --git a/server/configs/freiburg/pam b/server/configs/freiburg/pam-freiburg
index 4e851a8d..4e851a8d 120000
--- a/server/configs/freiburg/pam
+++ b/server/configs/freiburg/pam-freiburg
diff --git a/server/export_target b/server/export_target
index fd4112b6..3bda2ce6 100755
--- a/server/export_target
+++ b/server/export_target
@@ -33,12 +33,12 @@ initial_checks() {
local TOOL_STR="$TOOL_STR initial_checks:"
- [ ! -d "${SERVER_BOOT_DIR}" ] && mkdir -p "${SERVER_BOOT_DIR}"
+ [ -d "${SERVER_BOOT_DIR}" ] || mkdir -p "${SERVER_BOOT_DIR}"
# check if SERVER_EXPORT_TARGET is valid
- if [ ! -d "${SERVER_CONFIGS_DIR}/${SERVER_EXPORT_CONFIG}" ]; then
+ [ ! -z "${SERVER_EXPORT_CONFIG}" ] || perror "Server export config not given!"
+ [ -d "${SERVER_CONFIGS_DIR}/${SERVER_EXPORT_CONFIG}" ] || \
perror "Given export config not found: ${SERVER_CONFIGS_DIR}/${SERVER_EXPORT_CONFIG}"
- fi
}
copy_kernel() {
@@ -88,55 +88,88 @@ generate_addons() {
generate_config() {
# generate config from the target directory
local TOOL_STR="${TOOL_STR} generate_config:"
- pinfo "Generating config.tgz for '$SERVER_EXPORT_CONFIG'"
-
- local TARGET_CONFIG="${SERVER_CONFIGS_DIR}/${SERVER_EXPORT_CONFIG}"
-
- # its not possible to append files to a compressed tar archiv, so start with
- # a simple tar which we will gzip at the end.
+ pinfo "Generating config.tgz for '${SERVER_CONFIG_TYPE}'"
- local TARGET_CONFIG_PATH="${SERVER_CONFIGS_DIR}/config.tar"
- local TARGET_COMPRESSED_CONFIG_PATH="${SERVER_CONFIGS_DIR}/config.tgz"
+ # directory where the activated modules are given
+ # ex: server/configs/freiburg/
+ local TARGET_CONFIG_DIR="${SERVER_CONFIGS_DIR}/${SERVER_CONFIG_TYPE}"
- [ -e "$TARGET_COMPRESSED_CONFIG_PATH" ] && rm -f "$TARGET_COMPRESSED_CONFIG_PATH"
-
- for MODULE_CONFIG in $(ls "$TARGET_CONFIG"); do
+ # directory where the generated config.tgz will land
+ local TARGET_CONFIG_FINAL_DIR="${SERVER_BOOT_DIR}/configs/${SERVER_CONFIG_TYPE}"
+ [ ! -d "$TARGET_CONFIG_FINAL_DIR" ] && mkdir -p "$TARGET_CONFIG_FINAL_DIR"
+
+ # directory where the sub-archives of modules will be built
+ local TARGET_CONFIG_BUILD_DIR="${SERVER_BUILD_DIR}/configs/${SERVER_CONFIG_TYPE}"
+ # always clean the build dir
+ rm -rf "$TARGET_CONFIG_BUILD_DIR" && mkdir -p "$TARGET_CONFIG_BUILD_DIR"
+
+ local TARGET_CONFIG_PATH="${TARGET_CONFIG_FINAL_DIR}/config.tar"
+ local TARGET_CONFIG_FINAL_PATH="${TARGET_CONFIG_FINAL_DIR}/config.tgz"
+ [ -e "$TARGET_CONFIG_PATH" ] && rm -f "$TARGET_CONFIG_PATH"
+ [ -e "$TARGET_CONFIG_FINAL_PATH" ] && rm -f "$TARGET_CONFIG_FINAL_PATH"
+
+ # now go over the activated modules and pack the contents into the tar archive
+ for MODULE_CONFIG in $(ls "$TARGET_CONFIG_DIR"); do
+ pinfo "\tGenerating sub-archive for '${MODULE_CONFIG}'"
# add files in that directory to config.tgz
- cd "$TARGET_CONFIG/$MODULE_CONFIG" || perror "Could not cd to $TARGET_CONFIG/$MODULE_CONFIG"
- tar rf "${TARGET_CONFIG_PATH}" $(ls)
+ cd "${TARGET_CONFIG_DIR}/${MODULE_CONFIG}" || perror "\tCould not cd to '${TARGET_CONFIG_DIR}/${MODULE_CONFIG}'"
+
+ # check if files are already in another module config
+ for FILE in $(find . -type f); do
+ # check for all the archives we find in TARGET_CONFIG_BUILD_DIR
+ for ARCHIV in $(ls "${TARGET_CONFIG_BUILD_DIR}/"*.tar 2>/dev/null); do
+ if [ "x$(tar tvf "${ARCHIV}" | grep "$FILE")" != "x" ]; then
+ # name of the module in conflict
+ local CONFLICTING_MODULE="$(basename ${ARCHIV%.tar})"
+ # file is present in archiv
+ pwarning "\tFile '${FILE#.}' is already present in module config of '${CONFLICTING_MODULE}'."
+ perror "\tResolve conflicts between '${CONFLICTING_MODULE}' and '${MODULE_CONFIG}', then try again."
+ fi
+ done
+
+ done
+
+ # no conflict, add file to archive
+ tar cf "${TARGET_CONFIG_BUILD_DIR}/${MODULE_CONFIG}.tar" $(ls)
RET=$?
- if [ "x$RET" != "x0" ]; then
- # something went wrong
- perror "Could not add files from $MODULE_CONFIG to $TARGET_CONFIG_PATH"
- fi
+ [ "x$RET" != "x0" ] && perror "\tCould not create '${TARGET_CONFIG_BUILD_DIR}/${MODULE_CONFIG}.tgz'"
done
- # now gzip the tarball
- gzip "${TARGET_CONFIG_PATH}" || perror "Could not gzip ${TARGET_CONFIG_PATH}"
- mv "${TARGET_CONFIG_PATH}.gz" "${TARGET_COMPRESSED_CONFIG_PATH}"
+ # now we have packed all configs separately and can concatenate them all together.
+ pinfo "Merging all sub-archive into one"
+ for MODULE_CONFIG_ARCHIV in $(ls "${TARGET_CONFIG_BUILD_DIR}/"*.tar 2>/dev/null); do
+ tar Af "${TARGET_CONFIG_PATH}" "${MODULE_CONFIG_ARCHIV}"
+ RET=$?
+ [ "x$RET" != "x0" ] && perror "Could not merge '${MODULE_CONFIG_ARCHIV}' into '${TARGET_CONFIG_PATH}.tar'"
+ done
+ # now gzip everything
+ gzip "${TARGET_CONFIG_PATH}" || perror "Could not gzip '${TARGET_CONFIG_FINAL_PATH}'"
+ mv "${TARGET_CONFIG_PATH}.gz" "${TARGET_CONFIG_FINAL_PATH}" \
+ || perror "Could not mv '${TARGET_CONFIG_PATH}.gz' to '${TARGET_CONFIG_FINAL_PATH}'"
+
+ pinfo "Created config.tgz for '${SERVER_CONFIG_TYPE}' at '${TARGET_CONFIG_FINAL_PATH}'"
}
export_target() {
-initial_checks
-copy_kernel
-
-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
- generate_config
- ;;
- addons)
- generate_addons
- ;;
-esac
+ initial_checks
+ copy_kernel
+
+ 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
}
@@ -155,4 +188,3 @@ clean_target() {
pinfo "Cleaning '${SERVER_BOOT_DIR}/stage32_dqfs/mnt/${TARGET}.sqfs'..."
[ -e "${SERVER_BOOT_DIR}/stage32_sqfs/mnt/${TARGET}.sqfs" ] && { rm "${SERVER_BOOT_DIR}/stage32_sqfs/mnt/${TARGET}.sqfs" || perror "rm failed."; }
}
-