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;; | |
9f24ffee LM |
63 | 8mhz|8MHz|12mhzdf|12MHzDF|12mhzmdf|12MHzMDF|30mhzmdf|30MHzMDF|30mhzmdf.lite|30MHzMDF.lite|30mhzmhf|30MHzMHF) |
64 | MODE_BW="${1^^}" | |
65 | MODE_BW=${MODE_BW/MHZ/MHz} | |
66 | MODE_BW=${MODE_BW/LITE/lite} | |
67 | ;; | |
b3f3562f OL |
68 | fix_ssh) MODE_FIX="$1";; |
69 | hw_ibm|hw_supermicro) MODE_HW="$1";; | |
70 | network) MODE_NET="$1";; | |
71 | tz_paris|tz_zulu) MODE_TZ="$1";; | |
72 | *) usage 1;; | |
73 | esac | |
74 | shift | |
75 | done | |
76 | ||
77 | # main process | |
78 | ||
79 | action="" | |
80 | ||
81 | if [ "$MODE_BW" ]; then | |
82 | title "updating /etc/hosts" | |
83 | check rm -f /etc/hosts | |
9f24ffee | 84 | check ln -s /etc/hosts.$MODE_BW /etc/hosts |
14037e7d LM |
85 | check rm -f /etc/network/interfaces |
86 | case "$MODE_BW" in | |
87 | 30MHzMDF.lite) | |
88 | check ln -s /etc/network/interfaces.lite /etc/network/interfaces | |
89 | ;; | |
90 | *) | |
91 | check ln -s /etc/network/interfaces.default /etc/network/interfaces | |
92 | ;; | |
93 | esac | |
b3f3562f OL |
94 | TARBALLS+=" root" |
95 | for ip in 0A851{A,C}; do check ln -T -f -s default /opt/tftp/pxelinux.cfg/$ip; done | |
96 | case "$MODE_BW" in | |
97 | 8MHzMHF) | |
b3f3562f OL |
98 | for ip in 0A851{A,C}A5; do check ln -T -f -s rec /opt/tftp/pxelinux.cfg/$ip; done |
99 | ;; | |
100 | 12MHzDF) ;; | |
101 | 12MHzMDF) ;; | |
102 | 30MHzMDF) ;; | |
637fd25c | 103 | 30MHzMDF.lite) |
62d648be | 104 | for ip in 0A851{A,C}; do check ln -T -f -s lite /opt/tftp/pxelinux.cfg/$ip; done |
637fd25c | 105 | ;; |
b3f3562f OL |
106 | 30MHzMHF) |
107 | for ip in 0A851{A,C}A{1..6}; do check ln -T -f -s acq /opt/tftp/pxelinux.cfg/$ip; done | |
108 | for ip in 0A851{A,C}A9; do check ln -T -f -s rec /opt/tftp/pxelinux.cfg/$ip; done | |
109 | ;; | |
110 | esac | |
f624eefc | 111 | check cp /etc/dhcp/dhcpd.conf.$MODE_BW /etc/dhcp/dhcpd.conf |
b3f3562f OL |
112 | action="done" |
113 | fi | |
114 | ||
115 | if [ "$MODE_FIX" ]; then | |
116 | ||
117 | case "$MODE_FIX" in | |
118 | fix_ssh) | |
119 | sed -i 's/^\(UsePAM\) yes/\1 no/' /etc/ssh/sshd_config | |
120 | TARBALLS+=" root" | |
121 | ||
122 | action="done" | |
123 | esac | |
124 | ||
125 | fi | |
126 | ||
127 | if [ "$MODE_HW" ]; then | |
128 | ||
129 | conf=/etc/default/shutdownallblades | |
130 | ||
131 | title "change shutdownallblades" | |
132 | if $(grep -sq '^#*REBOOT=' $conf); then | |
133 | case "$MODE_HW" in | |
134 | hw_ibm) check sed -i 's/^#*REBOOT=.*$/#REBOOT=yes/' $conf;; | |
135 | hw_supermicro) check sed -i 's/^#*REBOOT=.*$/REBOOT=yes/' $conf;; | |
136 | esac | |
137 | else | |
138 | case "$MODE_HW" in | |
139 | hw_ibm) check sed -i '$a#REBOOT=yes' $conf;; | |
140 | hw_supermicro) check sed -i '$aREBOOT=yes' $conf;; | |
141 | esac | |
142 | fi | |
143 | ||
144 | action="done" | |
145 | fi | |
146 | ||
147 | if [ "$MODE_NET" ]; then | |
148 | ||
149 | conf=/etc/dhcp/dhcpd.conf | |
150 | ||
151 | title "update network configuraton" | |
152 | if $(grep -sq 'trc[0-9]*_1' $conf); then | |
153 | check sed -i 's/\(host.*trc[0-9][0-9]\)\([^_]\)/\1-rf\2/;s/\(host.*trc[0-9][0-9]\)_1/\1/' $conf | |
154 | fi | |
155 | TARBALLS+=" root" | |
156 | ||
157 | action="done" | |
158 | fi | |
159 | ||
160 | if [ "$MODE_TZ" ]; then | |
161 | case "$MODE_TZ" in | |
162 | tz_paris) TZ="Europe/Paris";; | |
163 | tz_zulu) TZ="Etc/Zulu";; | |
164 | *) TZ="";; | |
165 | esac | |
166 | ||
167 | if [ "$TZ" ]; then | |
168 | echo $TZ > /etc/timezone | |
169 | TARBALLS+=" root" | |
170 | ||
171 | action="done" | |
172 | fi | |
173 | fi | |
174 | ||
175 | # last check | |
176 | [ "$action" ] || { echo "no mode specified"; exit 1; } | |
177 | ||
3bc777ae | 178 | [ ! "$TARBALLS" ] || make -f /opt/cluster/Makefile $TARBALLS |
b3f3562f OL |
179 | |
180 | # vim:set tabstop=4 expandtab shiftwidth=4: |