121 lines
		
	
	
		
			3.7 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			121 lines
		
	
	
		
			3.7 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
#!/bin/bash
 | 
						|
#------------------------------------------------------------------------------------------------------------------
 | 
						|
# Script         : sys_deploy_socle.sh
 | 
						|
# Auteur         : Doug Le Tough
 | 
						|
# Date           : 22-07-2017
 | 
						|
# Version        : 1.0.0
 | 
						|
# Objet          : Déploiement du socle Bash à partir du répertoire fourni en option
 | 
						|
#                  sur la VM dont le nom est passé en option
 | 
						|
#
 | 
						|
#
 | 
						|
#------------------------------------------------------------------------------------------------------------------
 | 
						|
# Mise a jour :
 | 
						|
#
 | 
						|
# 1.0.0  22/07/2017   - Doug Le Tough   - Cre : Mise en production
 | 
						|
#
 | 
						|
#------------------------------------------------------------------------------------------------------------------
 | 
						|
# Dependances : Aucune
 | 
						|
#
 | 
						|
#
 | 
						|
#------------------------------------------------------------------------------------------------------------------
 | 
						|
# Liste des options et arguments:
 | 
						|
#
 | 
						|
# @OPT: o:vm:vm:1/1::::
 | 
						|
# @OPT: o:socle_dir:socle_dir:1/1::::
 | 
						|
#
 | 
						|
#------------------------------------------------------------------------------------------------------------------
 | 
						|
# Liste des erreurs:
 | 
						|
#
 | 
						|
# 2 | erreur | stop | ${ERROR}
 | 
						|
#
 | 
						|
#------------------------------------------------------------------------------------------------------------------
 | 
						|
##
 | 
						|
## Syntaxe :
 | 
						|
## --------
 | 
						|
##
 | 
						|
##  prompt> sys_deploy_socle.sh -vm <VM> -socle_dir <DIR>
 | 
						|
##
 | 
						|
## Prérequis:
 | 
						|
## ----------
 | 
						|
## - Le script doit être executé par l'utilisateur asr
 | 
						|
##
 | 
						|
## Fonctionnement:
 | 
						|
## ---------------
 | 
						|
## Installe le socle Bash à partir du répertoire passée en paramètre (socle_dir) sur la VM
 | 
						|
## dont le nom est recu en paramètre.
 | 
						|
## 
 | 
						|
#------------------------------------------------------------------------------------------------------------------
 | 
						|
#                     Initialisation de l'environement
 | 
						|
#------------------------------------------------------------------------------------------------------------------
 | 
						|
 | 
						|
if [ "${USER}" != "asr" ]; then
 | 
						|
  ERROR="Seul l'utilisateur asr peut utiliser ce script"
 | 
						|
  echo -e "\033[91m${ERROR}\033[0m"
 | 
						|
  exit 1
 | 
						|
fi
 | 
						|
 | 
						|
source /etc/profile.d/tetalab.sh
 | 
						|
 | 
						|
if [ ! -f ${NC_EXPL_CFG}/init.conf ]; then
 | 
						|
  echo "Le fichier d'initialisation du socle \${NC_EXPL_CFG}/init.conf n'éxiste pas !"
 | 
						|
  echo "Arrêt du script par sécurité"
 | 
						|
  exit 250
 | 
						|
fi
 | 
						|
 | 
						|
source ${NC_EXPL_CFG}/init.conf
 | 
						|
 | 
						|
#------------------------------------------------------------------------------------------------------------------
 | 
						|
#  Fonctions
 | 
						|
#------------------------------------------------------------------------------------------------------------------
 | 
						|
 | 
						|
function check_socle_dir
 | 
						|
{
 | 
						|
  if [ ! -d ${socle_dir} ]; then
 | 
						|
    ERROR="Erreur le répertoire ${socle_dir} n'existe pas"
 | 
						|
    fct_erreur 2
 | 
						|
  fi
 | 
						|
}
 | 
						|
 | 
						|
function rm_socle_dir
 | 
						|
{
 | 
						|
  fct_message "Suppression du socle dans ${socle_dir} sur ${vm}:" -color rose
 | 
						|
  ssh ${vm} rm -Rf ${socle_dir}
 | 
						|
  RET_VAL=$?
 | 
						|
  if [ ! ${RET_VAL} -eq 0 ]; then
 | 
						|
    ERROR="Erreur lors de la suppression du socle sur ${vm}."
 | 
						|
    fct_erreur 2
 | 
						|
  fi
 | 
						|
}
 | 
						|
 | 
						|
function scp_socle_dir
 | 
						|
{
 | 
						|
  fct_message "Copie du socle dans ${socle_dir} sur ${vm}:" -color rose
 | 
						|
  scp -q -r ${socle_dir} ${vm}:${socle_dir}
 | 
						|
  RET_VAL=$?
 | 
						|
  if [ ! ${RET_VAL} -eq 0 ]; then
 | 
						|
    ERROR="Erreur lors de la copie du socle."
 | 
						|
    fct_erreur 2
 | 
						|
  fi
 | 
						|
}
 | 
						|
 | 
						|
function install_socle
 | 
						|
{
 | 
						|
  fct_message "Installation du socle sur ${vm}:" -color rose
 | 
						|
  ssh ${vm} "cd ${socle_dir} && sudo ./install.sh"
 | 
						|
  RET_VAL=$?
 | 
						|
  if [ ! ${RET_VAL} -eq 0 ]; then
 | 
						|
    ERROR="Erreur lors de l'installation du socle."
 | 
						|
    fct_erreur 2
 | 
						|
  fi
 | 
						|
}
 | 
						|
 | 
						|
#------------------------------------------------------------------------------------------------------------------
 | 
						|
# Traitement
 | 
						|
#------------------------------------------------------------------------------------------------------------------
 | 
						|
 | 
						|
check_socle_dir
 | 
						|
rm_socle_dir
 | 
						|
scp_socle_dir
 | 
						|
install_socle
 | 
						|
fct_erreur 0
 |