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.
 

124 lines
3.5 KiB

#!/bin/bash
#
# Script d'installation du socle Bash
#
# 21/07/2017 - Doug Le Tough / Tetalab
#
########################################################################
#
# Fonctions
#
########################################################################
function exit_on_error
{
ERROR="$@"
echo -e "\033[91m*** ${ERROR} ***\033[0m"
exit 1
}
function continue_on_ok
{
echo -e "\033[92m[OK]\033[0m"
}
########################################################################
#
# Contrôles
#
########################################################################
if [ ! $(id -u) -eq 0 ]; then
exit_on_error "Ce script doit être exécuté par l'utilisateur root"
fi
PKG_DIR=$(dirname $0)
PKG_INSTALL_CONF=${PKG_DIR}/conf/install_init.conf
PKG_SOCLE_INIT_CONF=${PKG_DIR}/conf/shell-env/profile_init.env
if [ ! -r ${PKG_INSTALL_CONF} ] || [ ! -r ${PKG_SOCLE_INIT_CONF} ] ; then
exit_on_error "Erreur lors de l'initialisation de l'environnement d'installation. Vérifier les permissions sur les fichiers ${PKG_INSTALL_CONF} et ${PKG_SOCLE_INIT_CONF} "
fi
########################################################################
#
# Main
#
########################################################################
source ${PKG_INSTALL_CONF}
source ${PKG_SOCLE_INIT_CONF} 2>/dev/null
echo -e "\033[93mInstallation du socle Bash:\033[0m"
echo -e "\033[93m * Répertoire racine: ${NC_EXPL_ROOT}\033[0m"
echo -e "\033[93m * Création des répertoires:\033[0m"
# Création des répertoires de destination
for DIR in $NC_EXPL_LIB $NC_EXPL_BIN $NC_EXPL_LOG $NC_EXPL_HST $NC_EXPL_CPT $NC_EXPL_TMP $NC_EXPL_DAT $NC_EXPL_MOD $NC_EXPL_CFG $NC_EXPL_MSG $NC_EXPL_MAN;
do
echo -en " * ${DIR} "
sudo mkdir -p ${DIR};
RET_VAL=$?
if [ ! ${RET_VAL} -eq 0 ]; then
exit_on_error "Erreur lors de la création des répertoires"
fi
continue_on_ok
done
# Installation des fichiers de profile
echo -en "\033[93m * Création du fichier de profile dans ${PROFILE_DIR}\033[0m "
cat << EOF > ${PROFILE_DIR}/${PROFILE_FILE}
NC_EXPL_ROOT=${NC_EXPL_ROOT}
export NC_EXPL_ROOT
source \${NC_EXPL_ROOT}/conf/shell-env/profile_init.env
EOF
RET_VAL=$?
if [ ! ${RET_VAL} -eq 0 ]; then
exit_on_error "Erreur lors de la création du fichier de profile"
fi
continue_on_ok
# Installation des fichiers de configuration
echo -en "\033[93m * Copie des fichiers de configuration dans ${NC_EXPL_CFG}\033[0m "
cp -R ${PKG_DIR}/conf/* ${NC_EXPL_CFG}
RET_VAL=$?
if [ ! ${RET_VAL} -eq 0 ]; then
exit_on_error "Erreur lors de la copie des fichiers de configuration"
fi
continue_on_ok
# Installation des bibliothèques
echo -en "\033[93m * Copie des bibliothèques dans ${NC_EXPL_LIB}\033[0m "
cp -R ${PKG_DIR}/lib/* ${NC_EXPL_LIB}
RET_VAL=$?
if [ ! ${RET_VAL} -eq 0 ]; then
exit_on_error "Erreur lors de la copie des bibliothèques"
fi
continue_on_ok
# Installation des scripts
SCRIPTS_NUM=$(find ${PKG_DIR}/bin/ -type f | wc -l)
if [ ! ${SCRIPTS_NUM} -eq 0 ]; then
echo -en "\033[93m * Copie des scripts dans ${NC_EXPL_BIN}\033[0m "
cp -R ${PKG_DIR}/bin/* ${NC_EXPL_BIN}
RET_VAL=$?
if [ ! ${RET_VAL} -eq 0 ]; then
exit_on_error "Erreur lors de la copie des scripts"
fi
continue_on_ok
fi
# Installation des fichiers msg relatifs aux scripts
MSGS_NUM=$(find ${PKG_DIR}/msg/ -type f | wc -l)
if [ ! ${MSGS_NUM} -eq 0 ]; then
echo -en "\033[93m * Copie des fichiers .msg dans ${NC_EXPL_MSG}\033[0m "
cp -R ${PKG_DIR}/msg/* ${NC_EXPL_MSG}
RET_VAL=$?
if [ ! ${RET_VAL} -eq 0 ]; then
exit_on_error "Erreur lors de la copie des fichiers .msg"
fi
continue_on_ok
fi