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 |
62 | do_cmd $mydir/ipmicfg.sh -m 10.133.25.$ID |
63 | do_cmd $mydir/ipmicfg.sh -k 255.255.255.0 |
64 | #do_cmd $mydir/ipmicfg.sh -g 10.133.26.231 |
65 | do_cmd $mydir/ipmicfg.sh -g 0.0.0.0 |
66 | do_cmd $mydir/ipmicfg.sh -fan 3 |
a3300608 |
67 | [ "$(which ipmitool)" ] && do_cmd ipmitool chassis policy always-on |