59389e78d312fab9c01e6ccd2b4b942b21a9ee75
[debian6500.git] / install / ipmi / update_blade_cfg.sh
1 #!/bin/sh
2
3 PROGNAME=$(basename $0)
4
5 # check binary directory
6
7 mydir=$(dirname $0)
8 mydir=$(cd $mydir; pwd)
9
10 # formating functions
11
12 _echo () { printf "$@\n"; }
13 title () { _echo "\033[0;1m$*\033[0;0m"; }
14 pass () { _echo "\033[1;32m$*\033[0;0m"; }
15 warn () { _echo "\033[1;33m$*\033[0;0m"; }
16 fail () { _echo "\033[1;31m$*\033[0;0m"; }
17
18 usage () {
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
28 do_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
39 while [ $# -gt 0 ]; do
40 case "$1" in
41 -h) usage 0;;
42 -y) DUMMY=no;;
43 -Y) ANS=yes
44 esac
45 shift
46 done
47 [ "$DUMMY" = "no" ] && \
48 fail "Real mode, things will really append" || \
49 warn "Dummy mode, nothing will be done"
50 if [ ! "$ANS" = "yes" ]; then
51 printf "Press 'y' to continue: "
52 read ANS
53 [ "$ANS" = "y" ] || exit 1
54 fi
55
56 ID=$(getent hosts $(hostname -s) | sed 's/.*\.\([0-9]*\)\s.*/\1/')
57 [ "$ID" ] || ID=254
58 title "Host ID: $ID"
59
60 title "Configure IPMI"
61 do_cmd $mydir/ipmicfg.sh -dhcp off
62 do_cmd $mydir/ipmicfg.sh -vlan off
63 do_cmd $mydir/ipmicfg.sh -m 10.133.25.$ID
64 do_cmd $mydir/ipmicfg.sh -k 255.255.255.0
65 #do_cmd $mydir/ipmicfg.sh -g 10.133.26.231
66 do_cmd $mydir/ipmicfg.sh -g 0.0.0.0
67 do_cmd $mydir/ipmicfg.sh -fan 3