#!/bin/ksh #set -vx # ----------------------------------------------------------------------- # deploiement # ------------------------------------------------------------------------ ####################################################################### #set -vx ####################################################################### # VARIABLES POUR LE SCRIPT ####################################################################### SERVEUR=$(hostname) # Nom du serveur [ $# -ne 0 ] && SERVEUR=$1 # forcage pour test ####################################################################### # Compte edsprai present CPTEDSPRAI=`id edsprai` if [ $? -ne 0 ] then echo "compte edsprai non present installation impossible" exit 1 fi # Detarrage du livrable cd /users/edsprai [ ! -f LIVRAISON.tar ] && { echo " fichier LIVRAISON.tar non trouvé" ; exit 2 ; } tar -xvpf /users/edsprai/LIVRAISON.tar ####################################################################### # test si fichier reference present [ ! -d /users/edsprai/LIVRAISON ] && { echo " repertoire LIVRAISON non trouvé" ; exit 3 ; } cd /users/edsprai/LIVRAISON [ ! -f LISTE.txt ] && { echo "fichier reference non trouvé" ; exit 4 ; } # Lecture des informations EXISTE=` grep ${SERVEUR} LISTE.txt ` echo $EXISTE if [ "t${EXISTE}t" = "tt" ] then echo " ${SERVEUR} non trouvé dans LISTE.txt pas d'installe possible" exit 5 else IP=`echo ${EXISTE} | awk -F";" '{ print $6 }'` SITE=`echo ${IP} | awk -F"." '{ print $2 }'` case $SITE in 30) TAMPON="pa1-0993" ZONE="ACHERES1" ;; 42) TAMPON="pa2-0993" ZONE="ACHERES2" ;; 43) TAMPON="pa3-0993" ZONE="ACHERES3" ;; # Modif B.LISAN du 18/9/2007, pour cas BULLE COURBEVOIE HR3 17) TAMPON="pa3-0993" ZONE="BULLE COURBEVOIE ACHERES3" ;; *) echo "site inconnu installation impossible" exit 6 ;; esac # Variable necessaire a la crontab HOSP=`echo ${EXISTE} | awk -F";" '{ print $18 }'` # Heure Os pra [ "t${HOSP}t" = "tt" ] && HOSP="05:00" HOS=`echo ${HOSP} | awk -F":" '{ print $1 }'` MOS=`echo ${HOSP} | awk -F":" '{ print $2 }'` DOSP=`echo ${EXISTE} | awk -F";" '{ print $19 }'` # Date OS pra [ "t${DOSP}t" = "tt" ] && DOSP="10" fi # Determination du package a traiter OS=`uname` PACKAGE=prai_${OS} ################################################################## echo " ######################" echo " Traitement de ${SERVEUR}" echo " Tampon est ${TAMPON} soit $ZONE " echo " Doit - on deinstaller un prai : ${DEINSTALL} " HOS=`echo ${HOSP} | awk -F":" '{ print $1 }'` MOS=`echo ${HOSP} | awk -F":" '{ print $2 }'` echo " Heure de declanchement Os : ${HOSP} ( $MOS $HOS )" echo " DATE de declanchement Os : ${DOSP}" echo " Heure de declanchement CARTO : ${HCAR}" echo " package : ${PACKAGE}" echo " ######################" ################################################################## echo "# Validation du SSH avec le tampon sinon pas la peine de continuer" # "decommentage" de ces 5 lignes (par B.LISAN le 18/9/07) echo "# Mise en place de la id_dsa" [ ! -d /users/edsprai/.ssh ] && \mkdir -p /users/edsprai/.ssh cp /users/edsprai/LIVRAISON/id_dsa-CLIENT /users/edsprai/.ssh/id_dsa chown -R edsprai:edsprai /users/edsprai/.ssh chmod 400 /users/edsprai/.ssh/id_dsa echo "Verification du ssh installé" [ ! -d /users/edsprai/.ssh ] && { echo "Repertoire SSH non present" ; exit 11 ; } [ ! -r /users/edsprai/.ssh/id_dsa ] && { echo "Clee id_dsa non trouvee " ; exit 12 ; } echo "# Validation du SSH avec le tampon sinon pas la peine de continuer" RCMD=`su edsprai -c "ssh edsprai@${TAMPON} -n echo ssh"` > /dev/null 2>&1 echo " RCMD est $RCMD" if [ "t${RCMD}t" = "tssht" ] then RCMD="ssh -q " RCMD_ENVOI="scp -q" ; export RCMD_ENVOI echo "ssh activé" else echo "Impossible de determiner le protocole reseau d'access au TAMPON ( $TAMPON )" exit 7 fi ################################################################## # Sauvegarde de la crontab de root echo " sauvegarde de la crontab " crontab -l > /users/edsprai/LIVRAISON/crontab_root.oldPRA PRACRON=`grep /product/prai crontab_root.oldPRA` if [ "t${PRACRON}t" = "tt" ] then echo "Pas de reference au prai dans la crontab" else echo "reference au pra trouvé dans la crontab " fi ################################################################# echo "# Desinstallation du pra si present" ################################################################## # Déploiement du package OS echo " Déploiement de ${PACKAGE}" if [ ! -d /product/prai ] then echo "# creation de /product/prai" \mkdir /product/prai chown edsprai:edsprai /product/prai fi if [ ! -d /varsoft/prai ] then echo "# creation de varsoft/prai" \mkdir /varsoft/prai chown edsprai:edsprai /varsoft/prai fi [ ! -d ${PACKAGE} ] && { echo "${PACKAGE} non trouvé déploiement impossible" ; exit 8 ; } cp -pR ${PACKAGE}/* /product/prai [ $? -ne 0 ] && { echo " erreur dans le déploiement de ${PACKAGE}" ; exit 8 ; } ################################################################### # Récuperation de fonctions.cfg et prai.cfg sur le tampon echo "Recuperation de fonctions.cfg et prai.cfg sur le tampon" cd /product/prai/cfg su edsprai -c "scp -q edsprai@${TAMPON}:/product/prai_relais/cfg/fonctions.cfg ." [ $? -ne 0 ] && { echo "Pb de recuperation fct" ; exit 9 ; } su edsprai -c "scp -q edsprai@${TAMPON}:/product/prai_relais/cfg/prai.cfg_${TAMPON} prai.cfg" [ $? -ne 0 ] && { echo "Pb de recuperation cfg" ; exit 9 ; } cp -p /product/prai/cfg/*.cfg /users/edsprai/ chown edsprai:edsprai /users/edsprai/*.cfg # Verif du bon prai OK=`grep ${TAMPON} /users/edsprai/prai.cfg` [ "t${OK}t" = "tt" ] && { echo "le fichier prai.cfg n'est pas le bon" ; exit 9 ; } ################################################################# # Gestion de la crontab cd /users/edsprai/LIVRAISON echo "Mise en commentaire des lignes de l'ancien prai dans la crontab" crontab -l | awk '{ if ( $0 ~ /\/product\/prai/ ) { print "#Old_pra "$0 } else { print $0 } }' > crontab_root.newPRA echo "##################" >> crontab_root.newPRA echo "# Nouveau PRAI" >> crontab_root.newPRA echo "30 22 * * * /product/prai/shl/prai_create_send_config.sh >/dev/null 2>&1" >> crontab_root.newPRA echo "00 23 * * * /product/prai/shl/prai_create_send_carto.sh >/dev/null 2>&1" >> crontab_root.newPRA echo "${MOS} ${HOS} ${DOSP} * * /product/prai/shl/prai_create_send_image.sh >/dev/null 2>&1" >> crontab_root.newPRA cat crontab_root.newPRA ################################################################ # chargement de la crontab crontab crontab_root.newPRA [ $? -ne 0 ] && { echo "Pb de Chargement Crontab" ; exit 10 ; } ############################################################### # Generation # echo "Check de la place disponible sur le serveur dans /varsoft " # [ "${OS}" = "HP-UX" ] && { CMD="bdf" ; CHAMP=3 ; AWK="awk -v" ; } # [ "${OS}" = "AIX" ] && { CMD="df -k" ; CHAMP=3 ; AWK="awk -v" ; } # [ "${OS}" = "SunOS" ] && { CMD="df -k" ; CHAMP=4 ; AWK="nawk -v" ; } # SPACEDISK=`${CMD} /varsoft | tail -1 | ${AWK} CHAMP=$CHAMP '{ print $CHAMP }'` >/dev/null 2>&1 # if [ $SPACEDISK -lt 3500000 ] # then # echo "Espace disque insuffisant pour recevoir image ( ${SPACEDISK}/3500000 )" # exit 1 # fi echo " Déclanchement du script /product/prai/shl/prai_create_send_carto.sh" FIC_SCRIPT=/product/prai/shl/prai_create_send_carto.sh nohup ${FIC_SCRIPT} /dev/null 2>&1 & sleep 60 # attente avant lancement config echo " Déclanchement du script /product/prai/shl/prai_create_send_config.sh" FIC_SCRIPT=/product/prai/shl/prai_create_send_config.sh nohup ${FIC_SCRIPT} /dev/null 2>&1 & echo "FIN DU DEPLOIEMENT DU PRAI SUR LE SERVEUR ${SERVEUR}, les images ont étés lancées a destination de ${TAMPON}" exit