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.

108 lines
3.0 KiB

  1. #!/bin/bash
  2. ##----------------------------------------------------------------------
  3. # Script : expl_deploy_socle.sh
  4. # Auteur : Doug Le Tough
  5. # Date : 22-07-2017
  6. # Version : 1.0.0
  7. # Objet : Déploiement du socle Bash à partir du répertoire fourni
  8. # sur la VM dont le nom est passé en option
  9. #
  10. #
  11. # ----------------------------------------------------------------------
  12. # Mise a jour :
  13. #
  14. # 1.0.0 22/07/2017 - Doug Le Tough - Cre : Mise en production
  15. #
  16. # ----------------------------------------------------------------------
  17. # Dependances : Aucune
  18. #
  19. #
  20. # ----------------------------------------------------------------------
  21. # Liste des options et arguments:
  22. #
  23. # @OPT: o:vm:vm:1/1::::
  24. # @OPT: o:socle_dir:socle_dir:1/1::::
  25. #
  26. # ----------------------------------------------------------------------
  27. # Liste des erreurs:
  28. #
  29. # 2 | erreur | stop | ${ERROR}
  30. #
  31. #-----------------------------------------------------------------------
  32. ##
  33. ## Syntaxe :
  34. ## --------
  35. ##
  36. ## prompt> expl_deploy_socle.sh -vm <VM> -socle_dir <DIR>
  37. ##
  38. ## Prérequis:
  39. ## ----------
  40. ## - Le script doit être executé en tant qu'asr.
  41. ## - Le socle doit avoir été cloné dans le homedir d'asr
  42. ##
  43. ## Fonctionnement:
  44. ## ---------------
  45. ## Installe le socle Bash à partir du répertoire passée en paramètre (socle_dir) sur la VM
  46. ## dont le nom est recu en paramètre.
  47. ##
  48. ## Le paramètre socle_dir est un chemin relatif au homedir d'asr
  49. ##
  50. ##----------------------------------------------------------------------
  51. #-----------------------------------------------------------------------
  52. # Initialisation de l'environement
  53. #-----------------------------------------------------------------------
  54. source /etc/profile.d/tetalab.sh
  55. if [ ! -f ${NC_EXPL_CFG}/init.conf ]
  56. then
  57. echo "Le fichier d'initialisation du socle \${NC_EXPL_CFG}/init.conf n'éxiste pas !"
  58. echo "Arrêt du script par sécurité"
  59. exit 250
  60. else
  61. source ${NC_EXPL_CFG}/init.conf
  62. fi
  63. #-----------------------------------------------------------------------
  64. # Fonctions
  65. #-----------------------------------------------------------------------
  66. function check_socle_dir
  67. {
  68. if [ ! -d ${SOCLE_DIR} ]; then
  69. ERROR="Erreur le répertoire ${SOCLE_DIR} n'existe pas"
  70. fct_erreur 2
  71. fi
  72. }
  73. function scp_socle_dir
  74. {
  75. fct_message "Copie du socle dans ${SOCLE_DIR} sur ${vm}:" -color rose
  76. scp -r ${SOCLE_DIR} ${vm}:${SOCLE_DIR}
  77. RET_VAL=$?
  78. if [ ! ${RET_VAL} -eq 0 ]; then
  79. ERROR="Erreur lors de la copie du socle."
  80. fct_erreur 2
  81. fi
  82. }
  83. function install_socle
  84. {
  85. fct_message "Installation du socle sur ${vm}:" -color rose
  86. ssh ${vm} "cd ${SOCLE_DIR} && ./install.sh"
  87. RET_VAL=$?
  88. if [ ! ${RET_VAL} -eq 0 ]; then
  89. ERROR="Erreur lors de l'installation du socle."
  90. fct_erreur 2
  91. fi
  92. }
  93. #-----------------------------------------------------------------------
  94. # Traitement
  95. #-----------------------------------------------------------------------
  96. SOCLE_DIR="${HOME}/${socle_dir}"
  97. check_socle_dir
  98. install_socle
  99. fct_erreur 0