adapt for ipmi wake
[debian6500.git] / master / opt / ipmi / update_blade_cfg.sh
CommitLineData
4e802319 1#!/bin/sh
2
3PROGNAME=$(basename $0)
4
5# check binary directory
6
7mydir=$(dirname $0)
8mydir=$(cd $mydir; pwd)
9
10# formating functions
11
a3300608 12_echo () { [ "$(echo -e '')" ] && echo $@ || echo -e $@; }
4e802319 13title () { _echo "\033[0;1m$*\033[0;0m"; }
14pass () { _echo "\033[1;32m$*\033[0;0m"; }
15warn () { _echo "\033[1;33m$*\033[0;0m"; }
16fail () { _echo "\033[1;31m$*\033[0;0m"; }
17
18usage () {
19 echo "usage: $PROGNAME [-h] [-y] [-Y]"
20 echo " -h: help message"
21 echo " -y: really do update"
22 echo " -Y: do not ask for confirmation"
23 exit $@
24}
25
26# do command
27
28do_cmd () {
29 if [ "$DUMMY" = "no" ]; then
30 warn $@
31 { eval $@; } && pass OK || { fail KO; exit 1; }
32 else
33 echo ":: $@"
34 fi
35}
36
37# argument processing
38
39while [ $# -gt 0 ]; do
40 case "$1" in
41 -h) usage 0;;
42 -y) DUMMY=no;;
43 -Y) ANS=yes
44 esac
45 shift
46done
47[ "$DUMMY" = "no" ] && \
48 fail "Real mode, things will really append" || \
49 warn "Dummy mode, nothing will be done"
50if [ ! "$ANS" = "yes" ]; then
a3300608 51 read -p "Press 'y' to continue: " ANS
4e802319 52 [ "$ANS" = "y" ] || exit 1
53fi
54
55ID=$(getent hosts $(hostname -s) | sed 's/.*\.\([0-9]*\)\s.*/\1/')
56[ "$ID" ] || ID=254
57title "Host ID: $ID"
58
59title "Configure IPMI"
60do_cmd $mydir/ipmicfg.sh -dhcp off
61do_cmd $mydir/ipmicfg.sh -vlan off
2f71dcad 62do_cmd $mydir/ipmicfg.sh -m 10.133.29.$ID
6c7cd222 63do_cmd $mydir/ipmicfg.sh -k 255.255.248.0
2f71dcad
LM
64do_cmd ipmitool lan set 1 defgw ipaddr 10.133.26.231
65do_cmd ipmitool lan set 1 bakgw ipaddr 10.133.28.231
66#do_cmd $mydir/ipmicfg.sh -g 0.0.0.0
e7b2a7cc
LM
67fanmode=$($mydir/ipmicfg.sh -fan 2>/dev/null | awk -F: '$2 ~ /Optimal/ {print $1}')
68[ "$fanmode" ] && do_cmd $mydir/ipmicfg.sh -fan $fanmode
a3300608 69[ "$(which ipmitool)" ] && do_cmd ipmitool chassis policy always-on