#!/bin/bash # ============================================================================ # # Copyright (C) THALES. All rights reserved # Author: Laurent Mazet # # Date : 10/10/2013 # # 05/11/2013 : LMa configuration des timezone Zulu(GMT) et Paris # Desactivation de pam pour ssh # ============================================================================ # Switch configuration # TODO # * MODE_BW="" MODE_FIX="" MODE_HW="" MODE_NET="" MODE_TZ="" TARBALLS="" PROGNAME=$(basename $0) VER=1.0 TMPLOG=/tmp/$PROGNAME-$$.log # help function function usage () { echo "usage: $PROGNAME " echo " switch trc6500 mode" echo " avaliable modes are:" echo " - 8MHzMHF, 12MHzDF, 12MHzMDF, 30MHzMDF 30MHzMDF.lite or 30MHzMHF" echo " - fix_ssh" echo " - hw_ibm or hw_supermicro" echo " - network" echo " - tz_zulu or tz_paris" exit $@ } # formating functions function title () { echo -e "\033[0;1m$*\033[0;0m"; } function pass () { echo -e "\033[1;32m$*\033[0;0m"; } function warn () { echo -e "\033[1;33m$*\033[0;0m"; } function fail () { echo -e "\033[1;31m$*\033[0;0m"; } # check command function check () { echo -n "$@: " $@ 2>$TMPLOG && pass OK || { fail KO; cat $TMPLOG; exit 1; } rm -f $TMPLOG } # argument processing while [ $# -gt 0 ]; do case "$1" in -h) usage 0;; 8mhz|8MHz|12mhzdf|12MHzDF|12mhzmdf|12MHzMDF|30mhzmdf|30MHzMDF|30mhzmdf.lite|30MHzMDF.lite|30mhzmhf|30MHzMHF) MODE_BW="${1^^}" MODE_BW=${MODE_BW/MHZ/MHz} MODE_BW=${MODE_BW/LITE/lite} ;; fix_ssh) MODE_FIX="$1";; hw_ibm|hw_supermicro) MODE_HW="$1";; network) MODE_NET="$1";; tz_paris|tz_zulu) MODE_TZ="$1";; *) usage 1;; esac shift done # main process action="" if [ "$MODE_BW" ]; then title "updating /etc/hosts" check rm -f /etc/hosts check ln -s /etc/hosts.$MODE_BW /etc/hosts TARBALLS+=" root" for ip in 0A851{A,C}; do check ln -T -f -s default /opt/tftp/pxelinux.cfg/$ip; done case "$MODE_BW" in 8MHzMHF) for ip in 0A851{A,C}A5; do check ln -T -f -s rec /opt/tftp/pxelinux.cfg/$ip; done ;; 12MHzDF) ;; 12MHzMDF) ;; 30MHzMDF) ;; 30MHzMDF.lite) for ip in 0A851{A,C}; do check ln -T -f -s lite /opt/tftp/pxelinux.cfg/$ip; done ;; 30MHzMHF) for ip in 0A851{A,C}A{1..6}; do check ln -T -f -s acq /opt/tftp/pxelinux.cfg/$ip; done for ip in 0A851{A,C}A9; do check ln -T -f -s rec /opt/tftp/pxelinux.cfg/$ip; done ;; esac check cp /etc/dhcp/dhcpd.conf.$MODE_BW /etc/dhcp/dhcpd.conf action="done" fi if [ "$MODE_FIX" ]; then case "$MODE_FIX" in fix_ssh) sed -i 's/^\(UsePAM\) yes/\1 no/' /etc/ssh/sshd_config TARBALLS+=" root" action="done" esac fi if [ "$MODE_HW" ]; then conf=/etc/default/shutdownallblades title "change shutdownallblades" if $(grep -sq '^#*REBOOT=' $conf); then case "$MODE_HW" in hw_ibm) check sed -i 's/^#*REBOOT=.*$/#REBOOT=yes/' $conf;; hw_supermicro) check sed -i 's/^#*REBOOT=.*$/REBOOT=yes/' $conf;; esac else case "$MODE_HW" in hw_ibm) check sed -i '$a#REBOOT=yes' $conf;; hw_supermicro) check sed -i '$aREBOOT=yes' $conf;; esac fi action="done" fi if [ "$MODE_NET" ]; then conf=/etc/dhcp/dhcpd.conf title "update network configuraton" if $(grep -sq 'trc[0-9]*_1' $conf); then check sed -i 's/\(host.*trc[0-9][0-9]\)\([^_]\)/\1-rf\2/;s/\(host.*trc[0-9][0-9]\)_1/\1/' $conf fi TARBALLS+=" root" action="done" fi if [ "$MODE_TZ" ]; then case "$MODE_TZ" in tz_paris) TZ="Europe/Paris";; tz_zulu) TZ="Etc/Zulu";; *) TZ="";; esac if [ "$TZ" ]; then echo $TZ > /etc/timezone TARBALLS+=" root" action="done" fi fi # last check [ "$action" ] || { echo "no mode specified"; exit 1; } [ "$TARBALLS" ] && make -f /opt/cluster/Makefile $TARBALLS # vim:set tabstop=4 expandtab shiftwidth=4: