L'ensemble des scripts et bibliothèques bash utilisés pour maintenir l'infrastructure du Tetalab. Ce socle Bash est une version légère et adaptée du socle Bash essentiellement développé par Emmanuel Confrère, éminent DBA Calédonien.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 

120 lines
3.7 KiB

#!/bin/bash
#------------------------------------------------------------------------------------------------------------------
# Script : sys_deploy_socle.sh
# Auteur : Doug Le Tough
# Date : 22-07-2017
# Version : 1.0.0
# Objet : Déploiement du socle Bash à partir du répertoire fourni en option
# sur la VM dont le nom est passé en option
#
#
#------------------------------------------------------------------------------------------------------------------
# Mise a jour :
#
# 1.0.0 22/07/2017 - Doug Le Tough - Cre : Mise en production
#
#------------------------------------------------------------------------------------------------------------------
# Dependances : Aucune
#
#
#------------------------------------------------------------------------------------------------------------------
# Liste des options et arguments:
#
# @OPT: o:vm:vm:1/1::::
# @OPT: o:socle_dir:socle_dir:1/1::::
#
#------------------------------------------------------------------------------------------------------------------
# Liste des erreurs:
#
# 2 | erreur | stop | ${ERROR}
#
#------------------------------------------------------------------------------------------------------------------
##
## Syntaxe :
## --------
##
## prompt> sys_deploy_socle.sh -vm <VM> -socle_dir <DIR>
##
## Prérequis:
## ----------
## - Le script doit être executé par l'utilisateur asr
##
## Fonctionnement:
## ---------------
## Installe le socle Bash à partir du répertoire passée en paramètre (socle_dir) sur la VM
## dont le nom est recu en paramètre.
##
#------------------------------------------------------------------------------------------------------------------
# Initialisation de l'environement
#------------------------------------------------------------------------------------------------------------------
if [ "${USER}" != "asr" ]; then
ERROR="Seul l'utilisateur asr peut utiliser ce script"
echo -e "\033[91m${ERROR}\033[0m"
exit 1
fi
source /etc/profile.d/tetalab.sh
if [ ! -f ${NC_EXPL_CFG}/init.conf ]; then
echo "Le fichier d'initialisation du socle \${NC_EXPL_CFG}/init.conf n'éxiste pas !"
echo "Arrêt du script par sécurité"
exit 250
fi
source ${NC_EXPL_CFG}/init.conf
#------------------------------------------------------------------------------------------------------------------
# Fonctions
#------------------------------------------------------------------------------------------------------------------
function check_socle_dir
{
if [ ! -d ${socle_dir} ]; then
ERROR="Erreur le répertoire ${socle_dir} n'existe pas"
fct_erreur 2
fi
}
function rm_socle_dir
{
fct_message "Suppression du socle dans ${socle_dir} sur ${vm}:" -color rose
ssh ${vm} rm -Rf ${socle_dir}
RET_VAL=$?
if [ ! ${RET_VAL} -eq 0 ]; then
ERROR="Erreur lors de la suppression du socle sur ${vm}."
fct_erreur 2
fi
}
function scp_socle_dir
{
fct_message "Copie du socle dans ${socle_dir} sur ${vm}:" -color rose
scp -q -r ${socle_dir} ${vm}:${socle_dir}
RET_VAL=$?
if [ ! ${RET_VAL} -eq 0 ]; then
ERROR="Erreur lors de la copie du socle."
fct_erreur 2
fi
}
function install_socle
{
fct_message "Installation du socle sur ${vm}:" -color rose
ssh ${vm} "cd ${socle_dir} && sudo ./install.sh"
RET_VAL=$?
if [ ! ${RET_VAL} -eq 0 ]; then
ERROR="Erreur lors de l'installation du socle."
fct_erreur 2
fi
}
#------------------------------------------------------------------------------------------------------------------
# Traitement
#------------------------------------------------------------------------------------------------------------------
check_socle_dir
rm_socle_dir
scp_socle_dir
install_socle
fct_erreur 0