Commit | Line | Data |
---|---|---|
4e802319 | 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 | ||
a3300608 | 12 | _echo () { [ "$(echo -e '')" ] && echo $@ || echo -e $@; } |
4e802319 | 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 | |
a3300608 | 51 | read -p "Press 'y' to continue: " ANS |
4e802319 | 52 | [ "$ANS" = "y" ] || exit 1 |
53 | fi | |
54 | ||
55 | ID=$(getent hosts $(hostname -s) | sed 's/.*\.\([0-9]*\)\s.*/\1/') | |
56 | [ "$ID" ] || ID=254 | |
57 | title "Host ID: $ID" | |
58 | ||
59 | title "Configure IPMI" | |
60 | do_cmd $mydir/ipmicfg.sh -dhcp off | |
61 | do_cmd $mydir/ipmicfg.sh -vlan off | |
2f71dcad | 62 | do_cmd $mydir/ipmicfg.sh -m 10.133.29.$ID |
6c7cd222 | 63 | do_cmd $mydir/ipmicfg.sh -k 255.255.248.0 |
2f71dcad LM |
64 | do_cmd ipmitool lan set 1 defgw ipaddr 10.133.26.231 |
65 | do_cmd ipmitool lan set 1 bakgw ipaddr 10.133.28.231 | |
66 | #do_cmd $mydir/ipmicfg.sh -g 0.0.0.0 | |
e7b2a7cc LM |
67 | fanmode=$($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 |