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.

install.sh 5.0KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172
  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. chmod 755 ${PROFILE_DIR}/${PROFILE_FILE}
  69. RET_VAL=$?
  70. if [ ! ${RET_VAL} -eq 0 ]; then
  71. exit_on_error "Erreur lors de l'application des permissions sur ${PROFILE_DIR}/${PROFILE_FILE}"
  72. fi
  73. continue_on_ok
  74. # Installation des fichiers de configuration
  75. echo -en "\033[93m * Copie des fichiers de configuration dans ${NC_EXPL_CFG}\033[0m "
  76. cp -R ${PKG_DIR}/conf/* ${NC_EXPL_CFG}
  77. RET_VAL=$?
  78. if [ ! ${RET_VAL} -eq 0 ]; then
  79. exit_on_error "Erreur lors de la copie des fichiers de configuration"
  80. fi
  81. continue_on_ok
  82. # Installation des bibliothèques
  83. echo -en "\033[93m * Copie des bibliothèques dans ${NC_EXPL_LIB}\033[0m "
  84. cp -R ${PKG_DIR}/lib/* ${NC_EXPL_LIB}
  85. RET_VAL=$?
  86. if [ ! ${RET_VAL} -eq 0 ]; then
  87. exit_on_error "Erreur lors de la copie des bibliothèques"
  88. fi
  89. continue_on_ok
  90. # Installation des scripts
  91. SCRIPTS_NUM=$(find ${PKG_DIR}/bin/ -type f | wc -l)
  92. if [ ! ${SCRIPTS_NUM} -eq 0 ]; then
  93. echo -en "\033[93m * Copie des scripts dans ${NC_EXPL_BIN}\033[0m "
  94. cp -R ${PKG_DIR}/bin/* ${NC_EXPL_BIN}
  95. RET_VAL=$?
  96. if [ ! ${RET_VAL} -eq 0 ]; then
  97. exit_on_error "Erreur lors de la copie des scripts"
  98. fi
  99. continue_on_ok
  100. fi
  101. # Installation des fichiers msg relatifs aux scripts
  102. MSGS_NUM=$(find ${PKG_DIR}/msg/ -type f | wc -l)
  103. if [ ! ${MSGS_NUM} -eq 0 ]; then
  104. echo -en "\033[93m * Copie des fichiers .msg dans ${NC_EXPL_MSG}\033[0m "
  105. cp -R ${PKG_DIR}/msg/* ${NC_EXPL_MSG}
  106. RET_VAL=$?
  107. if [ ! ${RET_VAL} -eq 0 ]; then
  108. exit_on_error "Erreur lors de la copie des fichiers .msg"
  109. fi
  110. continue_on_ok
  111. fi
  112. # Installation des fichiers modèles
  113. TEMPLATES_NUM=$(find ${PKG_DIR}/mod/ -type f | wc -l)
  114. if [ ! ${TEMPLATES_NUM} -eq 0 ]; then
  115. echo -en "\033[93m * Copie des fichiers modèles dans ${NC_EXPL_MOD}\033[0m "
  116. cp -R ${PKG_DIR}/mod/* ${NC_EXPL_MOD}
  117. RET_VAL=$?
  118. if [ ! ${RET_VAL} -eq 0 ]; then
  119. exit_on_error "Erreur lors de la copie des fichiers modèles"
  120. fi
  121. continue_on_ok
  122. fi
  123. # Gestion des droits et permissions
  124. echo -en "\033[93m * Application des droits sur les répertoires:\033[0m "
  125. chown -R ${ADMIN_USER}:${ADMIN_GROUP} ${NC_EXPL_ROOT}
  126. RET_VAL=$?
  127. if [ ! ${RET_VAL} -eq 0 ]; then
  128. exit_on_error "Erreur lors l'application des droits"
  129. fi
  130. continue_on_ok
  131. echo -e "\033[93m * Application des permissions sur les répertoires:\033[0m "
  132. for DIR in cpt bin conf dat lib man mod msg
  133. do
  134. echo -en " * ${NC_EXPL_ROOT}/${DIR} "
  135. chmod -R 555 ${NC_EXPL_ROOT}/${DIR}
  136. RET_VAL=$?
  137. if [ ! ${RET_VAL} -eq 0 ]; then
  138. exit_on_error "Erreur lors l'application des droits sur ${NC_EXPL_ROOT}/${DIR}"
  139. fi
  140. continue_on_ok
  141. done
  142. for DIR in cpt hist log tmp
  143. do
  144. echo -en " * ${NC_EXPL_ROOT}/${DIR} "
  145. chmod -R 775 ${NC_EXPL_ROOT}/${DIR}
  146. RET_VAL=$?
  147. if [ ! ${RET_VAL} -eq 0 ]; then
  148. exit_on_error "Erreur lors l'application des droits sur ${NC_EXPL_ROOT}/${DIR}"
  149. fi
  150. continue_on_ok
  151. done