Merge branch 'master' of srvgitgnv:/gitstore/g_tr65/debian6500
[debian6500.git] / master / opt / script / change_configuration
CommitLineData
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
19MODE_BW=""
20MODE_FIX=""
21MODE_HW=""
22MODE_NET=""
23MODE_TZ=""
24TARBALLS=""
25PROGNAME=$(basename $0)
26VER=1.0
27TMPLOG=/tmp/$PROGNAME-$$.log
28
29# help function
30
31function 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
45function title () { echo -e "\033[0;1m$*\033[0;0m"; }
46function pass () { echo -e "\033[1;32m$*\033[0;0m"; }
47function warn () { echo -e "\033[1;33m$*\033[0;0m"; }
48function fail () { echo -e "\033[1;31m$*\033[0;0m"; }
49
50# check command
51
52function 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
60while [ $# -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
75done
76
77# main process
78
79action=""
80
81if [ "$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"
113fi
114
115if [ "$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
125fi
126
127if [ "$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"
145fi
146
147if [ "$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"
158fi
159
160if [ "$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
173fi
174
175# last check
176[ "$action" ] || { echo "no mode specified"; exit 1; }
177
178[ "$TARBALLS" ] && make -f /opt/cluster/Makefile $TARBALLS
179
180# vim:set tabstop=4 expandtab shiftwidth=4: