almost every thing is ready
[debian6500.git] / master / opt / ipmi / update_blade_cfg.sh
diff --git a/master/opt/ipmi/update_blade_cfg.sh b/master/opt/ipmi/update_blade_cfg.sh
new file mode 100755 (executable)
index 0000000..9e89959
--- /dev/null
@@ -0,0 +1,67 @@
+#!/bin/sh
+
+PROGNAME=$(basename $0)
+
+# check binary directory
+
+mydir=$(dirname $0)
+mydir=$(cd $mydir; pwd)
+
+# formating functions
+
+_echo () { [ "$(echo -e '')" ] && echo $@ || echo -e $@; }
+title () { _echo "\033[0;1m$*\033[0;0m"; }
+pass () { _echo "\033[1;32m$*\033[0;0m"; }
+warn () { _echo "\033[1;33m$*\033[0;0m"; }
+fail () { _echo "\033[1;31m$*\033[0;0m"; }
+
+usage () {
+  echo "usage: $PROGNAME [-h] [-y] [-Y]"
+  echo " -h: help message"
+  echo " -y: really do update"
+  echo " -Y: do not ask for confirmation"
+  exit $@
+}
+
+# do command
+
+do_cmd () {
+  if [ "$DUMMY" = "no" ]; then
+    warn $@
+    { eval $@; } && pass OK || { fail KO; exit 1; }
+  else
+    echo ":: $@"
+  fi
+}
+
+# argument processing
+
+while [ $# -gt 0 ]; do
+  case "$1" in
+  -h) usage 0;;
+  -y) DUMMY=no;;
+  -Y) ANS=yes
+  esac
+  shift
+done
+[ "$DUMMY" = "no" ] && \
+  fail "Real mode, things will really append" || \
+  warn "Dummy mode, nothing will be done"
+if [ ! "$ANS" = "yes" ]; then
+  read -p "Press 'y' to continue: " ANS
+  [ "$ANS" = "y" ] || exit 1
+fi
+
+ID=$(getent hosts $(hostname -s) | sed 's/.*\.\([0-9]*\)\s.*/\1/')
+[ "$ID" ] || ID=254
+title "Host ID: $ID"
+
+title "Configure IPMI"
+do_cmd $mydir/ipmicfg.sh -dhcp off
+do_cmd $mydir/ipmicfg.sh -vlan off
+do_cmd $mydir/ipmicfg.sh -m 10.133.25.$ID
+do_cmd $mydir/ipmicfg.sh -k 255.255.255.0
+#do_cmd $mydir/ipmicfg.sh -g 10.133.26.231
+do_cmd $mydir/ipmicfg.sh -g 0.0.0.0
+do_cmd $mydir/ipmicfg.sh -fan 3
+[ "$(which ipmitool)" ] && do_cmd ipmitool chassis policy  always-on