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.
 

172 lines
5.0 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
chmod 755 ${PROFILE_DIR}/${PROFILE_FILE}
RET_VAL=$?
if [ ! ${RET_VAL} -eq 0 ]; then
exit_on_error "Erreur lors de l'application des permissions sur ${PROFILE_DIR}/${PROFILE_FILE}"
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
# Installation des fichiers modèles
TEMPLATES_NUM=$(find ${PKG_DIR}/mod/ -type f | wc -l)
if [ ! ${TEMPLATES_NUM} -eq 0 ]; then
echo -en "\033[93m * Copie des fichiers modèles dans ${NC_EXPL_MOD}\033[0m "
cp -R ${PKG_DIR}/mod/* ${NC_EXPL_MOD}
RET_VAL=$?
if [ ! ${RET_VAL} -eq 0 ]; then
exit_on_error "Erreur lors de la copie des fichiers modèles"
fi
continue_on_ok
fi
# Gestion des droits et permissions
echo -en "\033[93m * Application des droits sur les répertoires:\033[0m "
chown -R ${ADMIN_USER}:${ADMIN_GROUP} ${NC_EXPL_ROOT}
RET_VAL=$?
if [ ! ${RET_VAL} -eq 0 ]; then
exit_on_error "Erreur lors l'application des droits"
fi
continue_on_ok
echo -e "\033[93m * Application des permissions sur les répertoires:\033[0m "
for DIR in cpt bin conf dat lib man mod msg
do
echo -en " * ${NC_EXPL_ROOT}/${DIR} "
chmod -R 555 ${NC_EXPL_ROOT}/${DIR}
RET_VAL=$?
if [ ! ${RET_VAL} -eq 0 ]; then
exit_on_error "Erreur lors l'application des droits sur ${NC_EXPL_ROOT}/${DIR}"
fi
continue_on_ok
done
for DIR in cpt hist log tmp
do
echo -en " * ${NC_EXPL_ROOT}/${DIR} "
chmod -R 775 ${NC_EXPL_ROOT}/${DIR}
RET_VAL=$?
if [ ! ${RET_VAL} -eq 0 ]; then
exit_on_error "Erreur lors l'application des droits sur ${NC_EXPL_ROOT}/${DIR}"
fi
continue_on_ok
done