Commit | Line | Data |
---|---|---|
b3f3562f OL |
1 | #!/bin/bash |
2 | # ============================================================================ | |
3 | # | |
4 | # Copyright (C) THALES. All rights reserved | |
5 | # Author: Laurent Mazet | |
6 | # | |
7 | ||
8 | # Date : 10/10/2013 | |
9 | # | |
10 | # 05/11/2013 : LMa configuration des timezone Zulu(GMT) et Paris | |
11 | # Desactivation de pam pour ssh | |
12 | # ============================================================================ | |
13 | ||
14 | # Switch configuration | |
15 | ||
16 | # TODO | |
17 | # * | |
18 | ||
19 | MODE_BW="" | |
20 | MODE_FIX="" | |
21 | MODE_HW="" | |
22 | MODE_NET="" | |
23 | MODE_TZ="" | |
24 | TARBALLS="" | |
25 | PROGNAME=$(basename $0) | |
26 | VER=1.0 | |
27 | TMPLOG=/tmp/$PROGNAME-$$.log | |
28 | ||
29 | # help function | |
30 | ||
31 | function usage () { | |
32 | echo "usage: $PROGNAME <mode>" | |
33 | echo " switch trc6500 mode" | |
34 | echo " avaliable modes are:" | |
637fd25c | 35 | echo " - 8MHzMHF, 12MHzDF, 12MHzMDF, 30MHzMDF 30MHzMDF.lite or 30MHzMHF" |
b3f3562f OL |
36 | echo " - fix_ssh" |
37 | echo " - hw_ibm or hw_supermicro" | |
38 | echo " - network" | |
39 | echo " - tz_zulu or tz_paris" | |
40 | exit $@ | |
41 | } | |
42 | ||
43 | # formating functions | |
44 | ||
45 | function title () { echo -e "\033[0;1m$*\033[0;0m"; } | |
46 | function pass () { echo -e "\033[1;32m$*\033[0;0m"; } | |
47 | function warn () { echo -e "\033[1;33m$*\033[0;0m"; } | |
48 | function fail () { echo -e "\033[1;31m$*\033[0;0m"; } | |
49 | ||
50 | # check command | |
51 | ||
52 | function check () { | |
53 | echo -n "$@: " | |
54 | $@ 2>$TMPLOG && pass OK || { fail KO; cat $TMPLOG; exit 1; } | |
55 | rm -f $TMPLOG | |
56 | } | |
57 | ||
58 | # argument processing | |
59 | ||
60 | while [ $# -gt 0 ]; do | |
61 | case "$1" in | |
62 | -h) usage 0;; | |
3a8d2b2f | 63 | 8mhz|8MHz|12mhzdf|12MHzDF|12mhzmdf|12MHzMDF|30mhzmdf|30MHzMDF|30mhzmdf.lite|30MHzMDF.lite|30mhzmhf|30MHzMHF) MODE_BW="${1^^}";; |
b3f3562f OL |
64 | fix_ssh) MODE_FIX="$1";; |
65 | hw_ibm|hw_supermicro) MODE_HW="$1";; | |
66 | network) MODE_NET="$1";; | |
67 | tz_paris|tz_zulu) MODE_TZ="$1";; | |
68 | *) usage 1;; | |
69 | esac | |
70 | shift | |
71 | done | |
72 | ||
73 | # main process | |
74 | ||
75 | action="" | |
76 | ||
77 | if [ "$MODE_BW" ]; then | |
78 | title "updating /etc/hosts" | |
3a8d2b2f | 79 | MODE_BW=${MODE_BW/MHZ/MHz} |
b3f3562f | 80 | check rm -f /etc/hosts |
3a8d2b2f | 81 | check ln -s /etc/hosts.${MODE_BW/LITE/lite} /etc/hosts |
b3f3562f OL |
82 | TARBALLS+=" root" |
83 | for ip in 0A851{A,C}; do check ln -T -f -s default /opt/tftp/pxelinux.cfg/$ip; done | |
84 | case "$MODE_BW" in | |
85 | 8MHzMHF) | |
b3f3562f OL |
86 | for ip in 0A851{A,C}A5; do check ln -T -f -s rec /opt/tftp/pxelinux.cfg/$ip; done |
87 | ;; | |
88 | 12MHzDF) ;; | |
89 | 12MHzMDF) ;; | |
90 | 30MHzMDF) ;; | |
637fd25c | 91 | 30MHzMDF.lite) |
62d648be | 92 | for ip in 0A851{A,C}; do check ln -T -f -s lite /opt/tftp/pxelinux.cfg/$ip; done |
637fd25c LM |
93 | check cp /etc/dhcp/dhcpd.conf.lite /etc/dhcp/dhcpd.conf |
94 | ;; | |
b3f3562f OL |
95 | 30MHzMHF) |
96 | for ip in 0A851{A,C}A{1..6}; do check ln -T -f -s acq /opt/tftp/pxelinux.cfg/$ip; done | |
97 | for ip in 0A851{A,C}A9; do check ln -T -f -s rec /opt/tftp/pxelinux.cfg/$ip; done | |
98 | ;; | |
99 | esac | |
100 | action="done" | |
101 | fi | |
102 | ||
103 | if [ "$MODE_FIX" ]; then | |
104 | ||
105 | case "$MODE_FIX" in | |
106 | fix_ssh) | |
107 | sed -i 's/^\(UsePAM\) yes/\1 no/' /etc/ssh/sshd_config | |
108 | TARBALLS+=" root" | |
109 | ||
110 | action="done" | |
111 | esac | |
112 | ||
113 | fi | |
114 | ||
115 | if [ "$MODE_HW" ]; then | |
116 | ||
117 | conf=/etc/default/shutdownallblades | |
118 | ||
119 | title "change shutdownallblades" | |
120 | if $(grep -sq '^#*REBOOT=' $conf); then | |
121 | case "$MODE_HW" in | |
122 | hw_ibm) check sed -i 's/^#*REBOOT=.*$/#REBOOT=yes/' $conf;; | |
123 | hw_supermicro) check sed -i 's/^#*REBOOT=.*$/REBOOT=yes/' $conf;; | |
124 | esac | |
125 | else | |
126 | case "$MODE_HW" in | |
127 | hw_ibm) check sed -i '$a#REBOOT=yes' $conf;; | |
128 | hw_supermicro) check sed -i '$aREBOOT=yes' $conf;; | |
129 | esac | |
130 | fi | |
131 | ||
132 | action="done" | |
133 | fi | |
134 | ||
135 | if [ "$MODE_NET" ]; then | |
136 | ||
137 | conf=/etc/dhcp/dhcpd.conf | |
138 | ||
139 | title "update network configuraton" | |
140 | if $(grep -sq 'trc[0-9]*_1' $conf); then | |
141 | check sed -i 's/\(host.*trc[0-9][0-9]\)\([^_]\)/\1-rf\2/;s/\(host.*trc[0-9][0-9]\)_1/\1/' $conf | |
142 | fi | |
143 | TARBALLS+=" root" | |
144 | ||
145 | action="done" | |
146 | fi | |
147 | ||
148 | if [ "$MODE_TZ" ]; then | |
149 | case "$MODE_TZ" in | |
150 | tz_paris) TZ="Europe/Paris";; | |
151 | tz_zulu) TZ="Etc/Zulu";; | |
152 | *) TZ="";; | |
153 | esac | |
154 | ||
155 | if [ "$TZ" ]; then | |
156 | echo $TZ > /etc/timezone | |
157 | TARBALLS+=" root" | |
158 | ||
159 | action="done" | |
160 | fi | |
161 | fi | |
162 | ||
163 | # last check | |
164 | [ "$action" ] || { echo "no mode specified"; exit 1; } | |
165 | ||
166 | [ "$TARBALLS" ] && make -f /opt/cluster/Makefile $TARBALLS | |
167 | ||
168 | # vim:set tabstop=4 expandtab shiftwidth=4: |