move script directory into master tree
[debian6500.git] / master / opt / script / change_configuration.sh
diff --git a/master/opt/script/change_configuration.sh b/master/opt/script/change_configuration.sh
new file mode 100755 (executable)
index 0000000..ee4f32c
--- /dev/null
@@ -0,0 +1,168 @@
+#!/bin/bash
+# ============================================================================
+#
+# Copyright (C) THALES. All rights reserved
+# Author: Laurent Mazet
+#
+
+# Date : 10/10/2013
+#
+# 05/11/2013 : LMa configuration des timezone Zulu(GMT) et Paris
+#              Desactivation de pam pour ssh
+# ============================================================================
+
+# Switch configuration
+
+# TODO
+# *
+
+MODE_BW=""
+MODE_FIX=""
+MODE_HW=""
+MODE_NET=""
+MODE_TZ=""
+TARBALLS=""
+PROGNAME=$(basename $0)
+VER=1.0
+TMPLOG=/tmp/$PROGNAME-$$.log
+
+# help function
+
+function usage () {
+  echo "usage: $PROGNAME <mode>"
+  echo "  switch trc6500 mode"
+  echo "  avaliable modes are:"
+  echo "  - 8MHzMHF, 12MHzDF, 12MHzMDF, 30MHzMDF 30MHzMDF.lite or 30MHzMHF"
+  echo "  - fix_ssh"
+  echo "  - hw_ibm or hw_supermicro"
+  echo "  - network"
+  echo "  - tz_zulu or tz_paris"
+  exit $@
+}
+
+# formating functions
+
+function title () { echo -e "\033[0;1m$*\033[0;0m"; }
+function pass () { echo -e "\033[1;32m$*\033[0;0m"; }
+function warn () { echo -e "\033[1;33m$*\033[0;0m"; }
+function fail () { echo -e "\033[1;31m$*\033[0;0m"; }
+
+# check command
+
+function check () {
+  echo -n "$@: "
+  $@ 2>$TMPLOG && pass OK || { fail KO; cat $TMPLOG; exit 1; }
+  rm -f $TMPLOG
+}
+
+# argument processing
+
+while [ $# -gt 0 ]; do
+    case "$1" in
+    -h) usage 0;;
+    8mhz|8MHz|12mhzdf|12MHzDF|12mhzmdf|12MHzMDF|30mhzmdf|30MHzMDF|30mhzmdf.lite|30MHzMDF.lite|30mhzmhf|30MHzMHF) MODE_BW="${1^^}";;
+    fix_ssh) MODE_FIX="$1";;
+    hw_ibm|hw_supermicro) MODE_HW="$1";;
+    network) MODE_NET="$1";;
+    tz_paris|tz_zulu) MODE_TZ="$1";;
+    *) usage 1;;
+    esac
+    shift
+done
+
+# main process
+
+action=""
+
+if [ "$MODE_BW" ]; then
+    title "updating /etc/hosts"
+    MODE_BW=${MODE_BW/MHZ/MHz}
+    check rm -f /etc/hosts 
+    check ln -s /etc/hosts.${MODE_BW/LITE/lite} /etc/hosts
+    TARBALLS+=" root"
+    for ip in 0A851{A,C}; do check ln -T -f -s default /opt/tftp/pxelinux.cfg/$ip; done
+    case "$MODE_BW" in
+    8MHzMHF)
+        for ip in 0A851{A,C}A5; do      check ln -T -f -s rec /opt/tftp/pxelinux.cfg/$ip; done
+    ;;
+    12MHzDF) ;;
+    12MHzMDF) ;;
+    30MHzMDF) ;;
+    30MHzMDF.lite)
+        for ip in 0A851{A,C}; do check ln -T -f -s lite /opt/tftp/pxelinux.cfg/$ip; done
+        check cp /etc/dhcp/dhcpd.conf.lite /etc/dhcp/dhcpd.conf
+    ;;
+    30MHzMHF)
+        for ip in 0A851{A,C}A{1..6}; do check ln -T -f -s acq /opt/tftp/pxelinux.cfg/$ip; done
+        for ip in 0A851{A,C}A9; do      check ln -T -f -s rec /opt/tftp/pxelinux.cfg/$ip; done
+    ;;
+    esac
+    action="done"
+fi
+
+if [ "$MODE_FIX" ]; then
+
+    case "$MODE_FIX" in
+    fix_ssh)
+        sed -i 's/^\(UsePAM\) yes/\1 no/' /etc/ssh/sshd_config
+        TARBALLS+=" root"
+
+        action="done"
+    esac
+
+fi
+
+if [ "$MODE_HW" ]; then
+
+    conf=/etc/default/shutdownallblades
+
+    title "change shutdownallblades"
+    if $(grep -sq '^#*REBOOT=' $conf); then
+        case "$MODE_HW" in
+        hw_ibm) check sed -i 's/^#*REBOOT=.*$/#REBOOT=yes/' $conf;;
+        hw_supermicro) check sed -i 's/^#*REBOOT=.*$/REBOOT=yes/' $conf;;
+        esac
+    else
+        case "$MODE_HW" in
+        hw_ibm) check sed -i '$a#REBOOT=yes' $conf;;
+        hw_supermicro) check sed -i '$aREBOOT=yes' $conf;;
+        esac
+    fi
+
+    action="done"
+fi
+
+if [ "$MODE_NET" ]; then
+
+    conf=/etc/dhcp/dhcpd.conf
+
+    title "update network configuraton"
+    if $(grep -sq 'trc[0-9]*_1' $conf); then
+        check sed -i 's/\(host.*trc[0-9][0-9]\)\([^_]\)/\1-rf\2/;s/\(host.*trc[0-9][0-9]\)_1/\1/' $conf
+    fi
+    TARBALLS+=" root"
+
+    action="done"
+fi
+
+if [ "$MODE_TZ" ]; then
+    case "$MODE_TZ" in
+    tz_paris) TZ="Europe/Paris";;
+    tz_zulu) TZ="Etc/Zulu";;
+    *) TZ="";;
+    esac
+
+    if [ "$TZ" ]; then
+        echo $TZ > /etc/timezone
+        TARBALLS+=" root"
+
+        action="done"
+    fi
+fi
+
+# last check
+[ "$action" ] || { echo "no mode specified"; exit 1; }
+
+[ "$TARBALLS" ] && make -f /opt/cluster/Makefile $TARBALLS
+
+# vim:set tabstop=4 expandtab shiftwidth=4: