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

5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
  1. #!/bin/bash
  2. #
  3. # Script d'installation du socle Bash
  4. #
  5. # 21/07/2017 - Doug Le Tough / Tetalab
  6. #
  7. ########################################################################
  8. #
  9. # Fonctions
  10. #
  11. ########################################################################
  12. function exit_on_error
  13. {
  14. ERROR="$@"
  15. echo -e "\033[91m*** ${ERROR} ***\033[0m"
  16. exit 1
  17. }
  18. function continue_on_ok
  19. {
  20. echo -e "\033[92m[OK]\033[0m"
  21. }
  22. ########################################################################
  23. #
  24. # Contrôles
  25. #
  26. ########################################################################
  27. if [ ! $(id -u) -eq 0 ]; then
  28. exit_on_error "Ce script doit être exécuté par l'utilisateur root"
  29. fi
  30. PKG_DIR=$(dirname $0)
  31. PKG_INSTALL_CONF=${PKG_DIR}/conf/install_init.conf
  32. PKG_SOCLE_INIT_CONF=${PKG_DIR}/conf/shell-env/profile_init.env
  33. if [ ! -r ${PKG_INSTALL_CONF} ] || [ ! -r ${PKG_SOCLE_INIT_CONF} ] ; then
  34. 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} "
  35. fi
  36. ########################################################################
  37. #
  38. # Main
  39. #
  40. ########################################################################
  41. source ${PKG_INSTALL_CONF}
  42. source ${PKG_SOCLE_INIT_CONF} 2>/dev/null
  43. echo -e "\033[93mInstallation du socle Bash:\033[0m"
  44. echo -e "\033[93m * Répertoire racine: ${NC_EXPL_ROOT}\033[0m"
  45. echo -e "\033[93m * Création des répertoires:\033[0m"
  46. # Création des répertoires de destination
  47. 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;
  48. do
  49. echo -en " * ${DIR} "
  50. sudo mkdir -p ${DIR};
  51. RET_VAL=$?
  52. if [ ! ${RET_VAL} -eq 0 ]; then
  53. exit_on_error "Erreur lors de la création des répertoires"
  54. fi
  55. continue_on_ok
  56. done
  57. # Installation des fichiers de profile
  58. echo -en "\033[93m * Création du fichier de profile dans ${PROFILE_DIR}\033[0m "
  59. cat << EOF > ${PROFILE_DIR}/${PROFILE_FILE}
  60. NC_EXPL_ROOT=${NC_EXPL_ROOT}
  61. export NC_EXPL_ROOT
  62. source \${NC_EXPL_ROOT}/conf/shell-env/profile_init.env
  63. EOF
  64. RET_VAL=$?
  65. if [ ! ${RET_VAL} -eq 0 ]; then
  66. exit_on_error "Erreur lors de la création du fichier de profile"
  67. fi
  68. continue_on_ok
  69. # Installation des fichiers de configuration
  70. echo -en "\033[93m * Copie des fichiers de configuration dans ${NC_EXPL_CFG}\033[0m "
  71. cp -R ${PKG_DIR}/conf/* ${NC_EXPL_CFG}
  72. RET_VAL=$?
  73. if [ ! ${RET_VAL} -eq 0 ]; then
  74. exit_on_error "Erreur lors de la copie des fichiers de configuration"
  75. fi
  76. continue_on_ok
  77. # Installation des bibliothèques
  78. echo -en "\033[93m * Copie des bibliothèques dans ${NC_EXPL_LIB}\033[0m "
  79. cp -R ${PKG_DIR}/lib/* ${NC_EXPL_LIB}
  80. RET_VAL=$?
  81. if [ ! ${RET_VAL} -eq 0 ]; then
  82. exit_on_error "Erreur lors de la copie des bibliothèques"
  83. fi
  84. continue_on_ok
  85. # Installation des scripts
  86. SCRIPTS_NUM=$(find ${PKG_DIR}/bin/ -type f | wc -l)
  87. if [ ! ${SCRIPTS_NUM} -eq 0 ]; then
  88. echo -en "\033[93m * Copie des scripts dans ${NC_EXPL_BIN}\033[0m "
  89. cp -R ${PKG_DIR}/bin/* ${NC_EXPL_BIN}
  90. RET_VAL=$?
  91. if [ ! ${RET_VAL} -eq 0 ]; then
  92. exit_on_error "Erreur lors de la copie des scripts"
  93. fi
  94. continue_on_ok
  95. fi
  96. # Installation des fichiers msg relatifs aux scripts
  97. MSGS_NUM=$(find ${PKG_DIR}/msg/ -type f | wc -l)
  98. if [ ! ${MSGS_NUM} -eq 0 ]; then
  99. echo -en "\033[93m * Copie des fichiers .msg dans ${NC_EXPL_MSG}\033[0m "
  100. cp -R ${PKG_DIR}/msg/* ${NC_EXPL_MSG}
  101. RET_VAL=$?
  102. if [ ! ${RET_VAL} -eq 0 ]; then
  103. exit_on_error "Erreur lors de la copie des fichiers .msg"
  104. fi
  105. continue_on_ok
  106. fi