From e3afd19eff60681237dcfff3f34ed89d22bb3b51 Mon Sep 17 00:00:00 2001 From: Doug Le Tough Date: Thu, 27 Jul 2017 09:33:12 +0200 Subject: [PATCH] =?UTF-8?q?"D=C3=A9placement=20scripts=20dans=20autres=20d?= =?UTF-8?q?epots=20+=20ajout=20dummy=20+=20correction=20install.sh"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bin/ctl_all_nrpe.sh | 218 ------------ bin/ctl_host_process.sh | 87 ----- bin/{ctl_vm.sh => expl_dummy_script.sh} | 101 +++--- bin/expl_refresh_thsf_site.sh | 166 ---------- bin/expl_transfert_dir.sh | 294 ----------------- bin/sys_create_vhost.sh | 309 ------------------ bin/sys_deploy_socle.sh | 120 ------- bin/sys_refresh_ref_cron.sh | 227 ------------- bin/sys_refresh_socle_bash.sh | 185 ----------- conf/ctl_all_nrpe.conf | 35 -- conf/ctl_vm.conf | 8 - ...h_ref_cron.conf => expl_dummy_script.conf} | 7 +- conf/expl_refresh_thsf_site.conf | 5 - conf/lisezmoi.txt | 1 + conf/sys_create_vhost.conf | 5 - conf/sys_refresh_socle_bash.conf | 7 - mod/backend_template.conf | 13 - mod/lisezmoi.txt | 1 + mod/rproxy_template.conf | 36 -- msg/ctl_all_nrpe.msg | 2 - msg/ctl_host_process.msg | 3 - msg/ctl_vm.msg | 2 - ...create_vhost.msg => expl_dummy_script.msg} | 0 msg/expl_refresh_thsf_site.msg | 2 - msg/expl_transfert_dir.msg | 3 - msg/sys_deploy_socle.msg | 1 - msg/sys_refresh_ref_cron.msg | 2 - msg/sys_refresh_socle_bash.msg | 2 - 28 files changed, 41 insertions(+), 1801 deletions(-) delete mode 100755 bin/ctl_all_nrpe.sh delete mode 100755 bin/ctl_host_process.sh rename bin/{ctl_vm.sh => expl_dummy_script.sh} (57%) delete mode 100755 bin/expl_refresh_thsf_site.sh delete mode 100755 bin/expl_transfert_dir.sh delete mode 100755 bin/sys_create_vhost.sh delete mode 100755 bin/sys_deploy_socle.sh delete mode 100755 bin/sys_refresh_ref_cron.sh delete mode 100755 bin/sys_refresh_socle_bash.sh delete mode 100644 conf/ctl_all_nrpe.conf delete mode 100644 conf/ctl_vm.conf rename conf/{sys_refresh_ref_cron.conf => expl_dummy_script.conf} (58%) delete mode 100644 conf/expl_refresh_thsf_site.conf create mode 100644 conf/lisezmoi.txt delete mode 100644 conf/sys_create_vhost.conf delete mode 100644 conf/sys_refresh_socle_bash.conf delete mode 100644 mod/backend_template.conf create mode 100644 mod/lisezmoi.txt delete mode 100644 mod/rproxy_template.conf delete mode 100644 msg/ctl_all_nrpe.msg delete mode 100644 msg/ctl_host_process.msg delete mode 100644 msg/ctl_vm.msg rename msg/{sys_create_vhost.msg => expl_dummy_script.msg} (100%) delete mode 100644 msg/expl_refresh_thsf_site.msg delete mode 100644 msg/expl_transfert_dir.msg delete mode 100644 msg/sys_deploy_socle.msg delete mode 100644 msg/sys_refresh_ref_cron.msg delete mode 100644 msg/sys_refresh_socle_bash.msg diff --git a/bin/ctl_all_nrpe.sh b/bin/ctl_all_nrpe.sh deleted file mode 100755 index f699cd8..0000000 --- a/bin/ctl_all_nrpe.sh +++ /dev/null @@ -1,218 +0,0 @@ -#!/bin/bash -#------------------------------------------------------------------------------------------------------------------ -# Script : ctl_all_nrpe.sh -# Auteur : Doug Le Tough -# Date : 23-07-2017 -# Version : 1.0.0 -# Objet : Fait tous les contrôles NRPE standars sur l'ensemble des VM listées -# dans le fichier de configuration et notifie les incidents sur freenode.net#tetalab -# -#------------------------------------------------------------------------------------------------------------------ -# Mise a jour : -# -# 1.0.0 22/07/2017 - Doug Le Tough - Cre : Mise en production -# -#------------------------------------------------------------------------------------------------------------------ -# Dependances : -# - /usr/local/bin/tetalab/ircbot.py -# - ctl_host_process.sh -# -#------------------------------------------------------------------------------------------------------------------ -# Liste des options et arguments: -# -# Ce script n'accepte *aucune* option -# -# @OPT: f:bidon:::::: -# -#------------------------------------------------------------------------------------------------------------------ -# Liste des paramètres de configuration: -# -# IRC_BOT=/usr/local/bin/tetalab/ircbot.py -# NRPE_CHECK_PATH=/etc/nagios/nrpe/ -# NRPE_CHECK_BIN=/usr/libexec/nagios/check_nrpe -# INFRA_SERVER=sousetsuken.local.tetalab.org -# # VM monitorée par NRPE -# # ATTENTION: web n'est *volontairement* pas monitorée par NRPE -# TETALAB_VM[0]=sousetsuken.local.tetalab.org -# TETALAB_VM[1]=jimmy.local.tetalab.org -# TETALAB_VM[2]=billy.local.tetalab.org -# TETALAB_VM[3]=sonny.local.tetalab.org -# TETALAB_VM[4]=marian.local.tetalab.org -# # Processus monitorés indépendemment de NRPE -# PROCESS[0]=sousetsuken.local.tetalab.org:/usr/sbin/httpd -# PROCESS[1]=sousetsuken.local.tetalab.org:/usr/sbin/named -# PROCESS[2]=sousetsuken.local.tetalab.org:/usr/sbin/ntpd -# PROCESS[3]=sousetsuken.local.tetalab.org:/usr/sbin/crond -# PROCESS[4]=sousetsuken.local.tetalab.org:/usr/bin/nrpe -# PROCESS[5]=marian.local.tetalab.org:/usr/sbin/httpd -# PROCESS[6]=marian.local.tetalab.org:/usr/sbin/ntpd -# PROCESS[7]=marian.local.tetalab.org:/usr/sbin/crond -# PROCESS[8]=marian.local.tetalab.org:/usr/bin/nrpe -# PROCESS[9]=web.local.tetalab.org:/usr/lib/postfix/sbin/master -# PROCESS[10]=sonny.local.tetalab.org:/usr/lib64/postgresql/9.6/bin/postgres -# PROCESS[11]=sonny.local.tetalab.org:/usr/sbin/ntpd -# PROCESS[12]=sonny.local.tetalab.org:/usr/sbin/crond -# PROCESS[13]=sonny.local.tetalab.org:/usr/bin/nrpe -# PROCESS[14]=jimmy.local.tetalab.org:/usr/sbin/httpd -# PROCESS[15]=jimmy.local.tetalab.org:/usr/sbin/node -# PROCESS[16]=jimmy.local.tetalab.org:/usr/sbin/ntpd -# PROCESS[17]=jimmy.local.tetalab.org:/usr/sbin/crond -# PROCESS[18]=jimmy.local.tetalab.org:/usr/bin/nrpe -# PROCESS[19]=billy.local.tetalab.org:/usr/sbin/ntpd -# PROCESS[20]=billy.local.tetalab.org:/usr/sbin/crond -# PROCESS[21]=billy.local.tetalab.org:/usr/bin/nrpe -# PROCESS[22]=billy.local.tetalab.org:/usr/sbin/httpd -# -#------------------------------------------------------------------------------------------------------------------ -# Liste des erreurs: -# -# 2 | erreur | stop | ${ERROR} -# 3 | erreur | continu | ${ERROR} -# -#------------------------------------------------------------------------------------------------------------------ -## -## Syntaxe : -## -------- -## -## prompt> ctl_all_nrpe.sh -## -## ex: -## ctl_all_nrpe.sh -## -## Prérequis: -## ---------- -## - Le script doit être executé par l'utilisateur asr sur sousetsuken -## -## Fonctionnement: -## --------------- -## Depuis sousetsuken, récupère depuis le répertoire local NRPE_CHECK_PATH la liste des checks à effectuer -## et pour ceux qui sont executables les execute sur les VM définies dans le fichier de configuration. -## puis relève les incidents et les notifie sur le chan freenode.net#tetalab en utilisant le script python -## /usr/local/bin/tetalab/ircbot.py -## -## Ce script utilise ctl_host_process.sh pour la vérification des processus. -## -#------------------------------------------------------------------------------------------------------------------ -# 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_config -{ - fct_message "Vérification de la configuration:" -color jaune - if [ ! -r ${SH_FICCFG} ]; then - ERROR="Fichier de configuration ${SH_FICCFG} absent ou illisible" - fct_erreur 2 - fi - if [ ${#IRC_BOT} -eq 0 ]; then - ERROR="Paramètre manquant ou vide dans le fichier de configuration: IRC_BOT" - fct_erreur 2 - fi - if [ ${#NRPE_CHECK_PATH} -eq 0 ]; then - ERROR="Paramètre manquant ou vide dans le fichier de configuration: NRPE_CHECK_PATH" - fct_erreur 2 - fi - if [ ${#NRPE_CHECK_BIN} -eq 0 ]; then - ERROR="Paramètre manquant ou vide dans le fichier de configuration: NRPE_CHECK_BIN" - fct_erreur 2 - fi - if [ ${#TETALAB_VM[*]} -eq 0 ]; then - ERROR="Aucune VM définie dans le fichier de configuration" - fct_erreur 2 - fi - if [ ${#PROCESS[*]} -eq 0 ]; then - ERROR="Aucun processus défini dans le fichier de configuration" - fct_erreur 2 - fi - fct_message " * IRC_BOT: ${IRC_BOT}" - fct_message " * NRPE_CHECK_PATH: ${NRPE_CHECK_PATH}" - fct_message " * NRPE_CHECK_BIN: ${NRPE_CHECK_BIN}" - INDEX=0 - for VM in ${TETALAB_VM[@]} - do - fct_message " * VM[${INDEX}]: ${VM}" - INDEX=$(( INDEX+1 )) - done -} - -function check_all -{ - for CHECK in $(find ${NRPE_CHECK_PATH} -type f -executable -exec basename {} .cfg \; | sort ) - do - fct_message "Contrôle ${CHECK}:" -color jaune - for HOST in ${TETALAB_VM[@]} - do - CRITICAL=1 - if [ "${HOST}" == "${INFRA_SERVER}" ]; then - fct_message " * ${HOST}" - RESULT=$(${NRPE_CHECK_BIN} -H ${HOST} -c ${CHECK} | cut -d'|' -f1) - CRITICAL=$(echo ${RESULT} | grep OK | wc -l) - elif [ $(echo ${CHECK} | grep "check_http_" | wc -l) -eq 0 ]; then - # On ne fait pas les checks HTTP sur les autres VM que le serveur d'infra (sousetsuken) - fct_message " * ${HOST}" - RESULT=$(${NRPE_CHECK_BIN} -H ${HOST} -c ${CHECK} | cut -d'|' -f1) - CRITICAL=$(echo ${RESULT} | grep OK | wc -l) - fi - if [ ! ${CRITICAL} -eq 1 ]; then - fct_message " - CRITICAL" -color orange - MESSAGE="${MESSAGE}|||${HOST}: ${CHECK}: ${RESULT}" - fi - done - done -} - -function check_process -{ - fct_message "Vérification des processus:" - for PROC in ${PROCESS[@]} - do - HOST=$(echo ${PROC} | cut -d: -f1) - PROC=$(echo ${PROC} | cut -d: -f2) - ctl_host_process.sh -vm ${HOST} -process ${PROC} - RET_VAL=$? - if [ ! ${RET_VAL} -eq 0 ]; then - fct_message "Processus ${PROC} inexistant sur ${HOST}" -color rose - MESSAGE="${MESSAGE}|||${HOST}: CRITICAL: Processus ${PROC} inexistant sur ${HOST}" - fi - done -} - -function send_message -{ - if [ ${#MESSAGE} -eq 0 ]; then - fct_message "Aucun message à envoyer" -color jaune - fct_erreur 0 - fi - fct_message "Envoi du message ${MESSAGE}" -color jaune - ${IRC_BOT} "${MESSAGE}" -} - -#------------------------------------------------------------------------------------------------------------------ -# Traitement -#------------------------------------------------------------------------------------------------------------------ - -MESSAGE="" -check_config -check_all -check_process -send_message -fct_erreur 0 diff --git a/bin/ctl_host_process.sh b/bin/ctl_host_process.sh deleted file mode 100755 index c26c619..0000000 --- a/bin/ctl_host_process.sh +++ /dev/null @@ -1,87 +0,0 @@ -#!/bin/bash -#------------------------------------------------------------------------------------------------------------------ -# Script : ctl_host_process.sh -# Auteur : Doug Le Tough -# Date : 23-07-2017 -# Version : 1.0.0 -# Objet : Vérifie sur la VM dont le nom est passée en option la présence d'un processus -# dont le nom est passé en option -# -#------------------------------------------------------------------------------------------------------------------ -# Mise a jour : -# -# 1.0.0 22/07/2017 - Doug Le Tough - Cre : Mise en production -# -#------------------------------------------------------------------------------------------------------------------ -# Liste des options et arguments: -# -# @OPT: o:vm:vm:1/1:::: -# @OPT: o:process:process:1/1:::: -# -#------------------------------------------------------------------------------------------------------------------ -# Liste des erreurs: -# -# 1 | erreur | stop | Processus inexistant sur ${vm} -# 2 | erreur | stop | ${ERROR} -# 3 | erreur | continu | ${ERROR} -# -#------------------------------------------------------------------------------------------------------------------ -## -## Syntaxe : -## -------- -## -## prompt> ctl_host_process.sh -vm -process -## -## ex: -## ctl_host_process.sh -vm sousetsuken -process /usr/sbin/httpd -## -## Prérequis: -## ---------- -## - Le script doit être executé par l'utilisateur asr sur sousetsuken -## -## Fonctionnement: -## --------------- -## Depuis sousetsuken se connecte sur la VM dont le nom est passé en option et vérifie la présence du -## du processus à l'aide de pidof -## -## Renvoie le code de sortie 1 si le process n'existe pas sur la VM et 0 dans le cas contraire. -## -#------------------------------------------------------------------------------------------------------------------ -# 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'existe pas !" - echo "Arrêt du script par sécurité" - exit 250 -fi - -source ${NC_EXPL_CFG}/init.conf - -#------------------------------------------------------------------------------------------------------------------ -# Fonctions -#------------------------------------------------------------------------------------------------------------------ - -function check_process -{ - fct_message "Vérification de la présence du processus ${process} sur ${vm}:" - PID=$(ssh ${vm} "pidof ${process}") - if [ ${#PID} -eq 0 ]; then - fct_erreur 1 - fi -} - -#------------------------------------------------------------------------------------------------------------------ -# Traitement -#------------------------------------------------------------------------------------------------------------------ - -check_process -fct_erreur 0 diff --git a/bin/ctl_vm.sh b/bin/expl_dummy_script.sh similarity index 57% rename from bin/ctl_vm.sh rename to bin/expl_dummy_script.sh index 6cb891c..6d3af82 100755 --- a/bin/ctl_vm.sh +++ b/bin/expl_dummy_script.sh @@ -1,50 +1,49 @@ #!/bin/bash #------------------------------------------------------------------------------------------------------------------ -# Script : ctl_vm.sh +# Script : expl_dummy_script.sh # Auteur : Doug Le Tough -# Date : 23-07-2017 +# Date : 26-07-2017 # Version : 1.0.0 -# Objet : Vérifie l'état des VM de l'infrastructure +# Objet : Script d'exemple qui liste les VM définies dans son fichier de configuration # #------------------------------------------------------------------------------------------------------------------ # Mise a jour : # -# 1.0.0 23/07/2017 - Doug Le Tough - Cre : Mise en production +# 1.0.0 22/07/2017 - Doug Le Tough - Cre : Mise en production +# +#------------------------------------------------------------------------------------------------------------------ +# Dependances : Aucune # #------------------------------------------------------------------------------------------------------------------ # Liste des options et arguments: # -# Ce script n'accepte *aucune* option +# @OPT: f:list_vm:list_vm:1/1:true::: # -# @OPT: f:bidon:::::: +#------------------------------------------------------------------------------------------------------------------ +# Liste des paramètres de configuration: +# +# DUMMY_VAR="Variable bidon pour test" +# TETALAB_VM[0]=sousetsukenlocal.tetalab.org +# TETALAB_VM[1]=jimmy.local.tetalab.org +# TETALAB_VM[2]=billy.local.tetalab.org +# TETALAB_VM[3]=marian.local.tetalab.org +# TETALAB_VM[4]=sonny.local.tetalab.org +# TETALAB_VM[5]=web.local.tetalab.org # #------------------------------------------------------------------------------------------------------------------ # Liste des erreurs: # # 2 | erreur | stop | ${ERROR} -# 3 | erreur | continu | ${ERROR} -# -#------------------------------------------------------------------------------------------------------------------ -# Liste des paramètres de configuration: -# -# NUC=nuc.local.tetalab.org -# NUC_SSH_PORT=2022 -# IRC_BOT=/usr/local/bin/tetalab/ircbot.py -# TETALAB_VM[0]=jimmy.local.tetalab.org -# TETALAB_VM[1]=billy.local.tetalab.org -# TETALAB_VM[2]=marian.local.tetalab.org -# TETALAB_VM[3]=sonny.local.tetalab.org -# TETALAB_VM[4]=web.local.tetalab.org # #------------------------------------------------------------------------------------------------------------------ ## ## Syntaxe : ## -------- ## -## prompt> ctl_vm.sh +## prompt> expl_dummy_script.sh [-list_vm false] ## ## ex: -## ctl_vm.sh +## expl_dummy_script.sh ## ## Prérequis: ## ---------- @@ -52,8 +51,9 @@ ## ## Fonctionnement: ## --------------- -## Depuis sousetsuken se connecte sur le Nuc et vérifie l'état des VM inscrite dans le fichier de configuration -## et notifie les incidents sur freenode.net#tetalab +## Affiche sa configuration et liste les VM listées dans son fichier de configuration (TETALAB_VM[*]). +## +## Si l'option -list_vm est positionnée à false, le script ne fait qu'afficher sa configuration. ## #------------------------------------------------------------------------------------------------------------------ # Initialisation de l'environement @@ -68,7 +68,7 @@ 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'existe pas !" + 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 @@ -86,25 +86,15 @@ function check_config ERROR="Fichier de configuration ${SH_FICCFG} absent ou illisible" fct_erreur 2 fi - if [ ${#NUC} -eq 0 ]; then - ERROR="Paramètre manquant ou vide dans le fichier de configuration: NUC" - fct_erreur 2 - fi - if [ ${#NUC_SSH_PORT} -eq 0 ]; then - ERROR="Paramètre manquant ou vide dans le fichier de configuration: NUC_SSH_PORT" - fct_erreur 2 - fi - if [ ${#IRC_BOT} -eq 0 ]; then - ERROR="Paramètre manquant ou vide dans le fichier de configuration: IRC_BOT" + if [ ${#DUMMY_VAR} -eq 0 ]; then + ERROR="Paramètre manquant ou vide dans le fichier de configuration: DUMMY_VAR" fct_erreur 2 fi if [ ${#TETALAB_VM[*]} -eq 0 ]; then ERROR="Aucune VM définie dans le fichier de configuration" fct_erreur 2 fi - fct_message " * NUC: ${NUC}" - fct_message " * NUC_SSH_PORT: ${NUC_SSH_PORT}" - fct_message " * IRC_BOT: ${IRC_BOT}" + fct_message " * DUMMY_VAR: ${DUMMY_VAR}" INDEX=0 for VM in ${TETALAB_VM[@]} do @@ -113,40 +103,23 @@ function check_config done } -function check_vm +function list_vm { - fct_message "Vérification de l'état des VM:" -color jaune - for VM in ${TETALAB_VM[@]} - do - VM_STATUS=$(ssh ${NUC} -p ${NUC_SSH_PORT} "/usr/bin/sudo virsh domstate ${VM} 2>/dev/null | grep running | wc -l") - if [ ! ${VM_STATUS} -eq 1 ]; then - VM_STATUS=$(ssh ${NUC} -p ${NUC_SSH_PORT} "/usr/bin/sudo virsh domstate ${VM} 2>/dev/null | head -n1") - VM_STATUS="${VM}: VM is ${VM_STATUS}" - fct_message " - ${VM_STATUS}" -color rose - MESSAGE="${MESSAGE}|||${VM_STATUS}" - continue - fi - VM_STATUS="${VM}: VM is running" - fct_message " - ${VM_STATUS}" -color vert - done -} - -function send_message -{ - if [ ${#MESSAGE} -eq 0 ]; then - fct_message "Aucun message à envoyer" -color jaune - fct_erreur 0 + if [ "${list_vm}" == "true" ]; then + fct_message "Liste des VM définies dans ${SH_FICCFG}:" -color jaune + INDEX=0 + for VM in ${TETALAB_VM[@]} + do + fct_message " * VM[${INDEX}]: ${VM}" + INDEX=$(( INDEX+1 )) + done fi - fct_message "Envoi du message ${MESSAGE}" -color jaune - ${IRC_BOT} "${MESSAGE}" } #------------------------------------------------------------------------------------------------------------------ # Traitement #------------------------------------------------------------------------------------------------------------------ -MESSAGE="" check_config -check_vm -send_message +list_vm fct_erreur 0 diff --git a/bin/expl_refresh_thsf_site.sh b/bin/expl_refresh_thsf_site.sh deleted file mode 100755 index 7493131..0000000 --- a/bin/expl_refresh_thsf_site.sh +++ /dev/null @@ -1,166 +0,0 @@ -#!/bin/bash -#------------------------------------------------------------------------------------------------------------------ -# Script : expl_refresh_thsf_site.sh -# Auteur : Doug Le Tough -# Date : 23-07-2017 -# Version : 1.0.0 -# Objet : Permet la mise à jour du site du THSF à partir du dépôt git -# -#------------------------------------------------------------------------------------------------------------------ -# Mise a jour : -# -# 1.0.0 22/07/2017 - Doug Le Tough - Cre : Mise en production -# -#------------------------------------------------------------------------------------------------------------------ -# Dependances : Aucune -# -#------------------------------------------------------------------------------------------------------------------ -# Liste des options et arguments: -# -# Ce script n'accepte *aucune* option -# -# @OPT: f:bidon:::::: -# -#------------------------------------------------------------------------------------------------------------------ -# Liste des paramètres de configuration: -# -# THSF_DIR=/var/www/www.thsf.net -# THSF_GIT_URL=ssh://git@jimmy:/fatalerrors/thsf-pico -# THSF_GIT_USER=asr -# THSF_HTTPD_USER=apache -# THSF_DIR_MODE=755 -# -#------------------------------------------------------------------------------------------------------------------ -# Liste des erreurs: -# -# 2 | erreur | stop | ${ERROR} -# -#------------------------------------------------------------------------------------------------------------------ -## -## Syntaxe : -## -------- -## -## prompt> expl_refresh_thsf_site.sh -## -## ex: -## expl_refresh_thsf_site.sh -## -## Prérequis: -## ---------- -## - Le script doit être executé par l'utilisateur asr sur marian -## -## Fonctionnement: -## --------------- -## Sur marian: Vérifie les différences entre la copie local du dépôt du site du THSF et le dépôt git. -## Met à jour a copie locale si nécessaire. -## -#------------------------------------------------------------------------------------------------------------------ -# 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_config -{ - fct_message "Vérification de la configuration:" -color jaune - if [ ! -r ${SH_FICCFG} ]; then - ERROR="Fichier de configuration ${SH_FICCFG} absent ou illisible" - fct_erreur 2 - fi - if [ ${#THSF_DIR} -eq 0 ]; then - ERROR="Paramètre manquant ou vide dans le fichier de configuration: THSF_DIR" - fct_erreur 2 - fi - if [ ${#THSF_DIR_MODE} -eq 0 ]; then - ERROR="Paramètre manquant ou vide dans le fichier de configuration: THSF_DIR_MODE" - fct_erreur 2 - fi - if [ ${#THSF_HTTPD_USER} -eq 0 ]; then - ERROR="Paramètre manquant ou vide dans le fichier de configuration: THSF_HTTPD_USER" - fct_erreur 2 - fi - if [ ${#THSF_GIT_URL} -eq 0 ]; then - ERROR="Paramètre manquant ou vide dans le fichier de configuration: THSF_GIT_URL" - fct_erreur 2 - fi - if [ ${#THSF_GIT_USER} -eq 0 ]; then - ERROR="Paramètre manquant ou vide dans le fichier de configuration: THSF_GIT_USER" - fct_erreur 2 - fi - fct_message " * THSF_DIR: ${THSF_DIR}" - fct_message " * THSF_DIR_MODE: ${THSF_DIR_MODE}" - fct_message " * THSF_GIT_URL: ${THSF_GIT_URL}" - fct_message " * THSF_GIT_USER: ${THSF_GIT_USER}" - fct_message " * THSF_HTTPD_USER: ${THSF_HTTPD_USER}" -} - -function update_thsf -{ - fct_message "Mise à jour du site du THSF:" -color jaune - if [ ! -d ${THSF_DIR} ]; then - ERROR="La copie locale du dépôt n'existe pas: ${THSF_DIR}" - fct_erreur 2 - fi - fct_message "Modification provisoire des droits sur ${THSF_DIR}" -color jaune - sudo chown -R ${THSF_GIT_USER}: ${THSF_DIR} - RET_VAL=$? - if [ ! ${RET_VAL} -eq 0 ]; then - ERROR="Erreur lors du changement des droits" - fct_erreur 2 - fi - cd ${THSF_DIR} - fct_message "Réinitialisation du dépot local" --color jaune - /usr/bin/git reset --hard - RET_VAL=$? - if [ ! ${RET_VAL} -eq 0 ]; then - ERROR="Erreur lors de la réinitialisation" - fct_erreur 2 - fi - fct_message "Mise à jour du dépôt local" - /usr/bin/git pull origin master - RET_VAL=$? - if [ ! ${RET_VAL} -eq 0 ]; then - ERROR="Erreur lors de la mise à jour" - fct_erreur 2 - fi - fct_message "Application des droits sur le dépôt local" - sudo chown -R ${THSF_HTTPD_USER}: ${THSF_DIR} - RET_VAL=$? - if [ ! ${RET_VAL} -eq 0 ]; then - ERROR="Erreur lors de l'application des droits" - fct_erreur 2 - fi - fct_message "Application des permissions sur le dépôt local" - sudo chmod -R ${THSF_DIR_MODE} ${THSF_DIR} - RET_VAL=$? - if [ ! ${RET_VAL} -eq 0 ]; then - ERROR="Erreur lors de l'application des permissions " - fct_erreur 2 - fi -} - -#------------------------------------------------------------------------------------------------------------------ -# Traitement -#------------------------------------------------------------------------------------------------------------------ - -check_config -update_thsf -fct_erreur 0 diff --git a/bin/expl_transfert_dir.sh b/bin/expl_transfert_dir.sh deleted file mode 100755 index f6595ab..0000000 --- a/bin/expl_transfert_dir.sh +++ /dev/null @@ -1,294 +0,0 @@ -#!/bin/bash -#------------------------------------------------------------------------------------------------------------------ -# Script : expl_transfert_dir.sh -# Auteur : Doug Le Tough -# Date : 22-07-2017 -# Version : 1.0.0 -# Objet : Permet le transfert de répertoire entre VM -# -#------------------------------------------------------------------------------------------------------------------ -# 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:src_host:src_host:1/1:::: -# @OPT: o:dst_host:dst_host:1/1:::: -# @OPT: o:src_dir:src_dir:1/1:::: -# @OPT: o:dst_dir:dst_dir:1/1:::: -# @OPT: f:create:create:1/1:false::: -# @OPT: f:dst_user:dst_user:1/1:asr::: -# @OPT: f:dst_group:dst_group:1/1:asr::: -# @OPT: f:dst_mode:dst_mode:1/1:755::: -# -#------------------------------------------------------------------------------------------------------------------ -# Liste des erreurs: -# -# 2 | erreur | stop | ${ERROR} -# -#------------------------------------------------------------------------------------------------------------------ -## -## Syntaxe : -## -------- -## -## prompt> expl_transfert_dir.sh -src_host -dst_host -src_dir -dst_dir [-create true] [-dst_user ] [-dst_group ] [-dst_mode ] -## -## ex: expl_transfert_dir.sh -src_host marian -dst_host jimmy -src_dir /etc/httpd -dst_dir /home/doug -create true -dst_user doug -dst_group wheel -dst_mode 644 -## -## Prérequis: -## ---------- -## - Le script doit être executé par l'utilisateur asr sur sousetsuken -## -## Fonctionnement: -## --------------- -## Récupère sur sousetsuken depuis src_host le contenu du répertoire src_dir et le copie dans le répertoire -## dst_dir sur dst_host. -## -## Si l'option facultative -create est positionnée à true, le répertoire de destination sera créé. -## Par défaut cette option vaut false. -## -## Si le répertoire de destination n'existe pas et si l'option -create ne vaut pas true, le script remontera -## une erreur. -## -## Si le répertoire de destination existe et l'option -create vaut true, le transfert aura lieu normalement. -## -## Tous les noms de répertoires doivent être des chemins absolus. -## -## Les options -dst_user, -dst_group et -dst_mode permettent de gérer les droits et permissions sur le -## répertoire copié -## -## -## ATTENTION: -## - Le script transfert LE CONTENU du répertoire source -## - Le script modifie les droits et permissions du répertoire de destination, soyez prudent lorsque le répertoire -## existe déjà. -## -#------------------------------------------------------------------------------------------------------------------ -# 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_hosts -{ - for HOST in ${src_host} ${dst_host} - do - if [ $(host ${HOST} | grep "Host ${HOST} not found: 3(NXDOMAIN)" | wc -l) -eq 1 ]; then - ERROR="${HOST} n'est pas un nom d'hôte valide" - fct_erreur 2 - fi - done -} - -function check_dirs -{ - fct_message "Vérification du répertoire source ${src_dir} sur ${src_host}" -color jaune - ssh ${src_host} "sudo find ${ROOT_SRC_DIR} -maxdepth 1 -type d -name ${BASE_SRC_DIR} >/dev/null 2>&1" - RET_VAL=$? - if [ ! ${RET_VAL} -eq 0 ]; then - ERROR="Le répertoire ${src_host}:${src_dir} n'existe pas" - fct_erreur 2 - fi - if [ $(ssh ${src_host} "sudo find ${ROOT_SRC_DIR} -maxdepth 1 -type d -name ${BASE_SRC_DIR}" | wc -l) -eq 0 ]; then - ERROR="Le répertoire ${src_host}:${src_dir} n'existe pas" - fct_erreur 2 - fi - if [ "${create}" != "true" ]; then - fct_message "Vérification du répertoire destination ${dst_dir} sur ${dst_host}" -color jaune - ssh ${dst_host} "sudo find ${ROOT_DST_DIR} -maxdepth 1 -type d -name ${BASE_DST_DIR} >/dev/null 2>&1" - RET_VAL=$? - if [ ! ${RET_VAL} -eq 0 ]; then - ERROR="Le répertoire ${dst_host}:${dst_dir} n'existe pas" - fct_erreur 2 - fi - if [ $(ssh ${dst_host} "sudo find ${ROOT_DST_DIR} -maxdepth 1 -type d -name ${BASE_DST_DIR} | wc -l") -eq 0 ]; then - ERROR="Le répertoire ${dst_host}:${dst_dir} n'existe pas" - fct_erreur 2 - fi - fi -} - -function check_user -{ - if [ ! $(ssh ${dst_host} "sudo cat /etc/passwd | grep -E "^${dst_user}\:" | wc -l") -eq 1 ]; then - ERROR="L'utilisateur ${dst_user} n'existe pas sur ${dst_host}" - fct_erreur 2 - fi -} - -function check_group -{ - if [ ! $(ssh ${dst_host} "sudo cat /etc/group | grep -E "^${dst_group}\:" | wc -l") -eq 1 ]; then - ERROR="Le groupe ${dst_group} n'existe pas sur ${dst_host}" - fct_erreur 2 - fi -} - -function create_dst_dir -{ - fct_message "Création du répertoire de destination ${dst_host}:${dst_dir}" -color jaune - ssh ${dst_host} "sudo mkdir -p ${dst_dir}" - RET_VAL=$? - if [ ! ${RET_VAL} -eq 0 ]; then - ERROR="Erreur lors de la création du répertoire de destination" - fct_erreur 2 - fi -} - -function get_src_archive -{ - fct_message "Création de l'archive /tmp/${ARCHIVE_NAME} du répertoire du répertoire ${src_host}:${src_dir}" -color jaune - ssh ${src_host} "sudo tar -C ${src_dir} -czf /tmp/${ARCHIVE_NAME} ./" - RET_VAL=$? - if [ ! ${RET_VAL} -eq 0 ]; then - ERROR="Erreur lors de la création de l'archive du répertoire source (1)" - fct_message ${ERROR} -color rouge - fct_erreur 3 - fct_erreur 1 - fi - ssh ${src_host} "sudo chown asr: /tmp/${ARCHIVE_NAME}" - RET_VAL=$? - if [ ! ${RET_VAL} -eq 0 ]; then - ERROR="Erreur lors de la création de l'archive du répertoire source (2)" - fct_message ${ERROR} -color rouge - fct_erreur 3 - fct_erreur 1 - fi - fct_message "Récupération de l'archive /tmp/${ARCHIVE_NAME} depuis ${src_host}" -color jaune - scp -q ${src_host}:/tmp/${ARCHIVE_NAME} /tmp - RET_VAL=$? - if [ ! ${RET_VAL} -eq 0 ]; then - ERROR="Erreur lors de la récupération de l'archive du répertoire source" - fct_message ${ERROR} -color rouge - fct_erreur 3 - fct_erreur 1 - fi -} - -function cp_archive -{ - fct_message "Copie de l'archive locale /tmp/${ARCHIVE_NAME} vers ${dst_host}:/tmp/${ARCHIVE_NAME}" -color jaune - scp -q /tmp/${ARCHIVE_NAME} ${dst_host}:/tmp/${ARCHIVE_NAME} - RET_VAL=$? - if [ ! ${RET_VAL} -eq 0 ]; then - ERROR="Erreur lors de la copie de l'archive" - fct_message ${ERROR} -color rouge - fct_erreur 3 - fct_erreur 1 - fi -} - -function untar_archive -{ - fct_message "Décompression de l'archive /tmp/${ARCHIVE_NAME} vers ${dst_host}:${dst_dir}" -color jaune - ssh ${dst_host} "sudo tar -C ${dst_dir} -xzf /tmp/${ARCHIVE_NAME}" - if [ ! ${RET_VAL} -eq 0 ]; then - ERROR="Erreur lors de la décompression de l'archive" - fct_message ${ERROR} -color rouge - fct_erreur 3 - fct_erreur 1 - fi -} - -function set_rights -{ - fct_message "Application des droits ${dst_user}:${dst_group} sur ${dst_host}:${dst_dir}" -color jaune - ssh ${dst_host} "sudo chown -R ${dst_user}:${dst_group} ${dst_dir}" - if [ ! ${RET_VAL} -eq 0 ]; then - ERROR="Erreur lors de l'application des droits" - fct_message ${ERROR} -color rouge - fct_erreur 3 - fct_erreur 1 - fi -} - -function set_permissions -{ - fct_message "Application des permission ${dst_mode} sur ${dst_host}:${dst_dir}" -color jaune - ssh ${dst_host} "sudo chmod -R ${dst_mode} ${dst_dir}" - if [ ! ${RET_VAL} -eq 0 ]; then - ERROR="Erreur lors de l'application des permissions" - fct_message ${ERROR} -color rouge - fct_erreur 3 - fct_erreur 1 - fi -} - -function rm_archives -{ - fct_message "Suppression de l'archive /tmp/${ARCHIVE_NAME} sur ${src_host}" -color jaune - ssh ${src_host} "sudo rm -Rf /tmp/${ARCHIVE_NAME}" - RET_VAL=$? - if [ ! ${RET_VAL} -eq 0 ]; then - ERROR="Erreur lors de la suppression de l'archive" - fct_erreur 2 - fi - fct_message "Suppression de l'archive locale /tmp/${ARCHIVE_NAME}" -color jaune - sudo rm -Rf /tmp/${ARCHIVE_NAME} - RET_VAL=$? - if [ ! ${RET_VAL} -eq 0 ]; then - ERROR="Erreur lors de la suppression de l'archive" - fct_erreur 2 - fi - fct_message "Suppression de l'archive /tmp/${ARCHIVE_NAME} sur ${dst_host}" -color jaune - ssh ${dst_host} "sudo rm -Rf /tmp/${ARCHIVE_NAME}" - RET_VAL=$? - if [ ! ${RET_VAL} -eq 0 ]; then - ERROR="Erreur lors de la suppression de l'archive" - fct_erreur 2 - fi -} - - -#------------------------------------------------------------------------------------------------------------------ -# Traitement -#------------------------------------------------------------------------------------------------------------------ - -ROOT_SRC_DIR=$(dirname ${src_dir}) -BASE_SRC_DIR=$(basename ${src_dir}) -ROOT_DST_DIR=$(dirname ${dst_dir}) -BASE_DST_DIR=$(basename ${dst_dir}) -# Génère une chaine aléatoire -RND=$(dd if=/dev/urandom bs=3 count=40 2>/dev/null | md5sum | cut -d' ' -f1) -# Le nom de l'archive contenant les documents à récupérer -ARCHIVE_NAME=${RND}.tgz - -check_hosts -check_dirs -check_user -check_group -if [ "${create}" == "true" ]; then - create_dst_dir -fi -get_src_archive -cp_archive -untar_archive -set_rights -set_permissions -rm_archives - -fct_erreur 0 diff --git a/bin/sys_create_vhost.sh b/bin/sys_create_vhost.sh deleted file mode 100755 index ac18ef0..0000000 --- a/bin/sys_create_vhost.sh +++ /dev/null @@ -1,309 +0,0 @@ -#!/bin/bash -#------------------------------------------------------------------------------------------------------------------ -# Script : sys_create_vhost.sh -# Auteur : Doug Le Tough -# Date : 22-07-2017 -# Version : 1.0.0 -# Objet : Création d'un VHOST sur le rproxy et sur l'hôte du backend. le rproxy comme le backend -# sont considérés être des serveurs Apache. Ce script ajoute également le domaine passé -# en argument de la liste des domaines gérés par Dehydrated. -# -#------------------------------------------------------------------------------------------------------------------ -# Mise a jour : -# -# 1.0.0 22/07/2017 - Doug Le Tough - Cre : Mise en production -# 1.1.0 26/07/2017 - Doug Le Tough - Evo : Ajout vérification de la configuration -# Ajout création du répertoire du backend -# -#------------------------------------------------------------------------------------------------------------------ -# Dependances : Aucune -# -# -#------------------------------------------------------------------------------------------------------------------ -# Liste des options et arguments: -# -# @OPT: o:domain:domain:1/1:::: -# @OPT: o:backend_host:backend_host:1/1:::: -# @OPT: o:backend_port:backend_port:1/1:::: -# -#------------------------------------------------------------------------------------------------------------------ -# Liste des erreurs: -# -# 2 | erreur | stop | ${ERROR} -# -#------------------------------------------------------------------------------------------------------------------ -# Liste des paramètres de configuration définis dans le fichier de configuration du script: -# -# RPROXY_VHOST_TEMPLATE=rproxy_template.conf -# REMOTE_VHOST_TEMPLATE=backend_template.conf -# DEHYDRATED_DOMAIN_LIST=/etc/dehydrated/domains.txt -# HTTPD_PATH=/etc/httpd/sites-available -# WWW_ROOT_DIR=/var/www -# -#------------------------------------------------------------------------------------------------------------------ -## -## Syntaxe : -## -------- -## -## prompt> sys_create_vhost.sh -domain [-backend_host ] -backend_port -## -## ex: sys_create_vhost.sh -domain pad.tetalab.org -backend_host jimmy.local.tetalab.org -backend_port 9001 -## -## Prérequis: -## ---------- -## - Le script doit être executé par l'utilisateur asr sur le rproxy (sousetsuken) -## -## Fonctionnement: -## --------------- -## Crée le fichier de configuration sur le rproxy à partir du fichiers modèle local_site_template.conf -## ainsi que le fichier de configuration sur l'hôte du backend à partir du fichier modèle remote_site_template.conf. -## -## Les deux fichiers modèles sont situés dans le répertoire NC_EXPL_MOD. -## -## Remarque importante: Ce script n'active *PAS* le virtualhost et ne redémarre *PAS* les serveurs Apache. -## -#------------------------------------------------------------------------------------------------------------------ -# 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 - -IP_ADDR=$(host ${backend_host} | rev | cut -d' ' -f1 | rev) -IS_PRESENT=$(grep -E ^${domain}$ ${DEHYDRATED_DOMAIN_LIST} | wc -l) -REMOTE_HTTP_PATH=${backend_host}:${HTTPD_PATH} -REPLACE_DOMAIN="s/SITE_NAME/${domain}/g" -REPLACE_HOST="s/SITE_HOST/${backend_host}/g" -REPLACE_IP_ADDR="s/SITE_IP/${IP_ADDR}/g" -REPLACE_SITE_PORT="s/SITE_PORT/${backend_port}/" - -#------------------------------------------------------------------------------------------------------------------ -# Fonctions -#------------------------------------------------------------------------------------------------------------------ - -function check_config -{ - fct_message "Vérification de la configuration:" -color jaune - if [ ! -r ${SH_FICCFG} ]; then - ERROR="Fichier de configuration ${SH_FICCFG} absent ou illisible" - fct_erreur 2 - fi - if [ ${#RPROXY_VHOST_TEMPLATE} -eq 0 ]; then - ERROR="Paramètre manquant ou vide dans le fichier de configuration: RPROXY_VHOST_TEMPLATE" - fct_erreur 2 - fi - if [ ${#REMOTE_VHOST_TEMPLATE} -eq 0 ]; then - ERROR="Paramètre manquant ou vide dans le fichier de configuration: REMOTE_VHOST_TEMPLATE" - fct_erreur 2 - fi - if [ ${#DEHYDRATED_DOMAIN_LIST} -eq 0 ]; then - ERROR="Paramètre manquant ou vide dans le fichier de configuration: DEHYDRATED_DOMAIN_LIST" - fct_erreur 2 - fi - if [ ${#HTTPD_PATH} -eq 0 ]; then - ERROR="Paramètre manquant ou vide dans le fichier de configuration: HTTPD_PATH" - fct_erreur 2 - fi - if [ ${#WWW_ROOT_DIR} -eq 0 ]; then - ERROR="Paramètre manquant ou vide dans le fichier de configuration: WWW_ROOT_DIR" - fct_erreur 2 - fi - fct_message " * RPROXY_VHOST_TEMPLATE: ${RPROXY_VHOST_TEMPLATE}" - fct_message " * REMOTE_VHOST_TEMPLATE: ${REMOTE_VHOST_TEMPLATE}" - fct_message " * DEHYDRATED_DOMAIN_LIST: ${DEHYDRATED_DOMAIN_LIST}" - fct_message " * HTTPD_PATH: ${HTTPD_PATH}" - fct_message " * WWW_ROOT_DIR: ${WWW_ROOT_DIR}" - fct_message " * Domain: ${domain}" - fct_message " * Backend host: ${backend_host}" - fct_message " * Backend port: ${backend_port}" -} - -function check_port -{ - if [ ! ${backend_port} -gt 0 ] 2>/dev/null || [ ! ${backend_port} -lt 65535 ] 2>/dev/null; then - ERROR="Le numéro de port doit être compris entre 0 et 65535" - fct_erreur 2 - fi -} - -function check_templates -{ - fct_message "Vérification de la présence du fichier modèle ${NC_EXPL_MOD}/${RPROXY_VHOST_TEMPLATE}" -color jaune - if [ ! -r ${NC_EXPL_MOD}/${RPROXY_VHOST_TEMPLATE} ]; then - ERROR="${NC_EXPL_MOD}/${RPROXY_VHOST_TEMPLATE} n'existe pas ou n'est pas lisible" - fct_erreur 2 - fi - fct_message "Vérification de la présence du fichier modèle ${NC_EXPL_MOD}/${REMOTE_VHOST_TEMPLATE}" -color jaune - if [ ! -r ${NC_EXPL_MOD}/${REMOTE_VHOST_TEMPLATE} ]; then - ERROR="${NC_EXPL_MOD}/${REMOTE_VHOST_TEMPLATE} n'existe pas ou n'est pas lisible" - fct_erreur 2 - fi -} - - -function create_rproxy_conf -{ - fct_message "Création de la configuration du rproxy:" -color jaune - fct_message " * Domaine: ${domain}" - fct_message " * Hôte : ${backend_host}" - fct_message " * Port: ${backend_port}" - sed -s ${REPLACE_DOMAIN} ${NC_EXPL_MOD}/${RPROXY_VHOST_TEMPLATE} > ${NC_EXPL_TMP}/${domain}.conf_${SH_SESSION_ID}.tmp - RET_VAL=$? - if [ ! ${RET_VAL} -eq 0 ]; then - ERROR="Erreur lors de la création de la configuration du rproxy (1)" - fct_erreur 2 - fi - sed -i ${REPLACE_HOST} ${NC_EXPL_TMP}/${domain}.conf_${SH_SESSION_ID}.tmp - RET_VAL=$? - if [ ! ${RET_VAL} -eq 0 ]; then - ERROR="Erreur lors de la création de la configuration du rproxy (2)" - fct_erreur 2 - fi - sed -i ${REPLACE_SITE_PORT} ${NC_EXPL_TMP}/${domain}.conf_${SH_SESSION_ID}.tmp - RET_VAL=$? - if [ ! ${RET_VAL} -eq 0 ]; then - ERROR="Erreur lors de la création de la configuration du rproxy (3)" - fct_erreur 2 - fi - fct_message "Installation de la configuration du rproxy vers ${HTTPD_PATH}/${domain}.conf" -color jaune - sudo cp ${NC_EXPL_TMP}/${domain}.conf_${SH_SESSION_ID}.tmp ${HTTPD_PATH}/${domain}.conf - RET_VAL=$? - if [ ! ${RET_VAL} -eq 0 ]; then - ERROR="Erreur lors de l'installation de la configuration du rproxy" - fct_erreur 2 - fi - fct_message "Application des droits sur ${HTTPD_PATH}/${domain}.conf" -color jaune - sudo chown root: ${HTTPD_PATH}/${domain}.conf - RET_VAL=$? - if [ ! ${RET_VAL} -eq 0 ]; then - ERROR="Erreur lors de l'application des droits." - fct_erreur 2 - fi - fct_message "Application des permissions sur ${HTTPD_PATH}/${domain}.conf" -color jaune - sudo chmod 644 ${HTTPD_PATH}/${domain}.conf - RET_VAL=$? - if [ ! ${RET_VAL} -eq 0 ]; then - ERROR="Erreur lors de l'application des permissions" - fct_erreur 2 - fi -} - -function create_backend_conf -{ - fct_message "Création de la configuration du backend:" -color jaune - fct_message " * Domaine: ${domain}" - fct_message " * Addresse IP du backend: ${IP_ADDR}" - fct_message " * Port: ${backend_port}" - sed -s ${REPLACE_DOMAIN} ${NC_EXPL_MOD}/${REMOTE_VHOST_TEMPLATE} > ${NC_EXPL_TMP}/${domain}.conf_${SH_SESSION_ID}.tmp - RET_VAL=$? - if [ ! ${RET_VAL} -eq 0 ]; then - ERROR="Erreur lors de la création de la configuration du backend (1)" - fct_erreur 2 - fi - sed -i ${REPLACE_IP_ADDR} ${NC_EXPL_TMP}/${domain}.conf_${SH_SESSION_ID}.tmp - RET_VAL=$? - if [ ! ${RET_VAL} -eq 0 ]; then - ERROR="Erreur lors de la création de la configuration du backend (2)" - fct_erreur 2 - fi - sed -i ${REPLACE_SITE_PORT} ${NC_EXPL_TMP}/${domain}.conf_${SH_SESSION_ID}.tmp - RET_VAL=$? - if [ ! ${RET_VAL} -eq 0 ]; then - ERROR="Erreur lors de la création de la configuration du backend (3)" - fct_erreur 2 - fi - fct_message "Installation de la configuration du backend sur ${backend_host}" -color jaune - scp -q ${NC_EXPL_TMP}/${domain}.conf_${SH_SESSION_ID}.tmp ${backend_host}:/tmp/${domain}.conf - RET_VAL=$? - if [ ! ${RET_VAL} -eq 0 ]; then - ERROR="Erreur lors de l'installation de la configuration du backend (1)" - fct_erreur 2 - fi - ssh ${backend_host} "sudo mv /tmp/${domain}.conf ${HTTPD_PATH}/${domain}.conf" - RET_VAL=$? - if [ ! ${RET_VAL} -eq 0 ]; then - ERROR="Erreur lors de l'installation de la configuration du backend (2)" - fct_erreur 2 - fi - fct_message "Application des droits sur le fichier de configuration du backend" - ssh ${backend_host} "sudo chown root: ${HTTPD_PATH}/${domain}.conf" - RET_VAL=$? - if [ ! ${RET_VAL} -eq 0 ]; then - ERROR="Erreur lors de l'application des droits sur la configuration du backend" - fct_erreur 2 - fi - fct_message "Application des permissions sur le fichier de configuration du backend" - ssh ${backend_host} "sudo chmod 644 ${HTTPD_PATH}/${domain}.conf" - RET_VAL=$? - if [ ! ${RET_VAL} -eq 0 ]; then - ERROR="Erreur lors de l'application des permissions sur la configuration du backend" - fct_erreur 2 - fi -} - -function create_backend_document_root -{ - fct_message "Création du répertoire d'accueil du backend sur ${backend_host}" -color jaune - ssh ${backend_host} "sudo mkdir -p ${WWW_ROOT_DIR}/${domain}" - RET_VAL=$? - if [ ! ${RET_VAL} -eq 0 ]; then - ERROR="Erreur lors de la création du répertoire d'accueil du backend" - fct_erreur 2 - fi - fct_message "Application des droits sur le répertoire d'accueil du backend" -color jaune - ssh ${backend_host} "sudo chown -R apache:apache ${WWW_ROOT_DIR}/${domain}" - if [ ! ${RET_VAL} -eq 0 ]; then - ERROR="Erreur lors de de l'application des droits sur le répertoire d'accueil du backend" - fct_erreur 2 - fi - fct_message "Application des permissions sur le répertoire d'accueil du backend" -color jaune - ssh ${backend_host} "sudo chmod -R 775 ${WWW_ROOT_DIR}/${domain}" - if [ ! ${RET_VAL} -eq 0 ]; then - ERROR="Erreur lors de de l'application des droits sur le répertoire d'accueil du backend" - fct_erreur 2 - fi -} - -function add_domain -{ - if [ ${IS_PRESENT} -eq 0 ]; then - fct_message "Ajout du domaine ${domain} aux domaines dont les certificats sont gérés par dehydrated" -color jaune - sudo echo ${domain} >> ${DEHYDRATED_DOMAIN_LIST} - RET_VAL=$? - if [ ! ${RET_VAL} -eq 0 ]; then - ERROR="Erreur lors de l'ajout du domaine dans ${DEHYDRATED_DOMAIN_LIST}" - fct_erreur 2 - fi - else - fct_message "${domain} fait déjà partie de la liste des domaines gérés par dehydrated" -color jaune - fi -} - -#------------------------------------------------------------------------------------------------------------------ -# Traitement -#------------------------------------------------------------------------------------------------------------------ - -check_config -check_port -check_templates -create_rproxy_conf -if [ "${#backend_host}" -gt 0 ]; then - create_backend_conf -fi -create_backend_document_root -add_domain - -fct_erreur 0 diff --git a/bin/sys_deploy_socle.sh b/bin/sys_deploy_socle.sh deleted file mode 100755 index 7ff4269..0000000 --- a/bin/sys_deploy_socle.sh +++ /dev/null @@ -1,120 +0,0 @@ -#!/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 -socle_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 diff --git a/bin/sys_refresh_ref_cron.sh b/bin/sys_refresh_ref_cron.sh deleted file mode 100755 index 1ed61e3..0000000 --- a/bin/sys_refresh_ref_cron.sh +++ /dev/null @@ -1,227 +0,0 @@ -#!/bin/bash -#------------------------------------------------------------------------------------------------------------------ -# Script : sys_refresh_ref_cron.sh -# Auteur : Doug Le Tough -# Date : 24-07-2017 -# Version : 1.0.0 -# Objet : Met à jour le référentiel des jobs cron de l'ensemble de l'infra -# accessible par https://ref.tetalab.org -# -# -#------------------------------------------------------------------------------------------------------------------ -# Mise a jour : -# -# 1.0.0 22/07/2017 - Doug Le Tough - Cre : Mise en production -# -#------------------------------------------------------------------------------------------------------------------ -# Dependances : Aucune -# -# -#------------------------------------------------------------------------------------------------------------------ -# Liste des options et arguments: -# -# Ce script n'accepte *aucune* option -# -# @OPT: f:force:force:1/1:false:show_only:: -# @OPT: f:show_only:show_only:1/1:false:force:: -# -#------------------------------------------------------------------------------------------------------------------ -# Liste des erreurs: -# -# 2 | erreur | stop | ${ERROR} -# -#------------------------------------------------------------------------------------------------------------------ -# Liste des paramètres de configuration: -# -# PGPASSFILE=/home/asr/.pgpass -# DB_TABLE=ref_cron -# TETALAB_USERS[0]=root -# TETALAB_USERS[1]=asr -# TETALAB_VM[0]=sousetsuken.local.tetalab.org -# TETALAB_VM[1]=jimmy.local.tetalab.org -# TETALAB_VM[2]=billy.local.tetalab.org -# TETALAB_VM[3]=marian.local.tetalab.org -# TETALAB_VM[4]=sonny.local.tetalab.org -# TETALAB_VM[5]=web.local.tetalab.org -# -##------------------------------------------------------------------------------------------------------------------ -## -## Syntaxe : -## -------- -## -## prompt> sys_refresh_ref_cron.sh [-force true] [-show_only true] -## -## Prérequis: -## ---------- -## - Le script doit être executé par l'utilisateur asr -## -## Fonctionnement: -## --------------- -## Récupère l'ensemble des cronjobs des utilisateurs listés dans TETALAB_USERS -## mis en place sur les VM définies dans TETALAB_VM et les enregistre dans la table -## DB_TABLE de la base de données "referentiel". -## -## À moins que l'option -force soit passée à true, le script ne fait qu'ajouter les nouvelles -## entrées dans la base. Par défaut cette option est positionnée à false, de ce fait -## aucune données n'est supprimée dans la base y compris si le cronjob n'existe plus sur le -## système concernée. -## -## Lorsqu'un cron job est supprimé, forcer une régénération complète des entrées de la base est -## donc nécessaire (sys_refresh_ref_cron.sh -force true) -## -## L'option -show_only positionnée à true permet de lister les cronjobs installés sur les VM sans -## les enregistrer dans la base de données. -## -## Les informations de connexion à la base de données doivent être stockées dans -## le fichier PGPASSFILE sur sousetsuken au format suivant: -## -## hostname:port:database:username:password -## -## https://www.postgresql.org/docs/9.6/static/libpq-pgpass.html -## -## -#------------------------------------------------------------------------------------------------------------------ -# 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_config -{ - fct_message "Vérification de la configuration:" -color jaune - if [ ! -r ${SH_FICCFG} ]; then - ERROR="Fichier de configuration ${SH_FICCFG} absent ou illisible" - fct_erreur 2 - fi - if [ ! -r ${PGPASSFILE} ]; then - ERROR="Fichier des informations de connexion ${PGPASSFILE} absent ou illisible" - fct_erreur 2 - fi - fct_message " * PGPASSFILE: ${PGPASSFILE}" - if [ ${#DB_TABLE} -eq 0 ]; then - ERROR="Paramètre manquant ou vide dans le fichier de configuration: DB_TABLE" - fct_erreur 2 - fi - fct_message " * DB_TABLE: ${DB_TABLE}" - fct_message " * Force: ${force}" - fct_message " * Show only: ${show_only}" - if [ ${#TETALAB_USERS[*]} -eq 0 ]; then - ERROR="Aucune VM définie dans le fichier de configuration" - fct_erreur 2 - fi - INDEX=0 - for TETALAB_USER in ${TETALAB_USERS[@]} - do - fct_message " * TETALAB_USERS[${INDEX}]: ${TETALAB_USER}" - INDEX=$(( INDEX+1 )) - done - if [ ${#TETALAB_VM[*]} -eq 0 ]; then - ERROR="Aucune VM définie dans le fichier de configuration" - fct_erreur 2 - fi - INDEX=0 - for VM in ${TETALAB_VM[@]} - do - fct_message " * VM[${INDEX}]: ${VM}" - INDEX=$(( INDEX+1 )) - done -} - -function get_db_info -{ - DB_HOST=$(cat ${PGPASSFILE} | cut -d: -f1) - DB_DATABASE=$(cat ${PGPASSFILE} | cut -d: -f3) - DB_USER=$(cat ${PGPASSFILE} | cut -d: -f4) -} - -function clean_table -{ - if [ "${force}" == "true" ]; then - fct_message "Option -force activée: Suppression des données dans la table." -color orange - SQL="delete from ref_cron where id > 0;" - psql -q -t -h ${DB_HOST} -U ${DB_USER} -d ${DB_DATABASE} -c "${SQL}" - fi -} - -function refresh_cronjobs -{ - fct_message "Récupération des cronjobs:" -color jaune - for VM in ${TETALAB_VM[@]} - do - fct_message " * ${VM}" -color rose - for TETALAB_USER in ${TETALAB_USERS[@]} - do - fct_message " * ${TETALAB_USER}" -color orange - IFS_BAK=${IFS} - IFS=$'\n' - CRONJOBS=$(ssh ${VM} "sudo crontab -u ${TETALAB_USER} -l 2>/dev/null | grep -v '^\#' | grep -v '^$' | grep -vP '^ +$'") - for CRONJOB in ${CRONJOBS} - do - COLOR="blanc" - MESSAGE=" - ${CRONJOB}" - if [ $(echo "${CRONJOB}" | grep "run-parts" | wc -l) -eq 1 ]; then - COLOR="vert" - fi - fct_message ${MESSAGE} -color ${COLOR} - if [ "${show_only}" == "false" ]; then - if [ ${#CRONJOB} -gt 0 ]; then - fct_message " Checking database:" - MINUTES=$(echo ${CRONJOB} | cut -d' ' -f1) - HOURS=$(echo ${CRONJOB} | cut -d' ' -f2) - DAYS=$(echo ${CRONJOB} | cut -d' ' -f3) - MONTHS=$(echo ${CRONJOB} | cut -d' ' -f4) - DAYSOFWEEK=$(echo ${CRONJOB} | cut -d' ' -f5) - COMMAND=$(echo ${CRONJOB} | cut -d' ' -f6-) - REQUEST_ID_PARAMS="host='${VM}' and s_user='${TETALAB_USER}' and minutes='${MINUTES}' and hours='${HOURS}' - and days='${DAYS}' and months='${MONTHS}' and daysofweek='${DAYSOFWEEK}' and command='${COMMAND}'" - RESULT=$(psql -q -t -h ${DB_HOST} -U ${DB_USER} -d ${DB_DATABASE} -c "select ID from - ref_cron where ${REQUEST_ID_PARAMS};") - if [ ${#RESULT} -eq 0 ]; then - fct_message " -> Cronjob not in database, inserting..." - REQUEST_INSERT_PARAMS="'${VM}', '${TETALAB_USER}', '${MINUTES}', - '${HOURS}', '${DAYS}', '${MONTHS}', '${DAYSOFWEEK}', '${COMMAND}'" - psql -q -t -h ${DB_HOST} -U ${DB_USER} -d ${DB_DATABASE} -c "insert into ref_cron - (\"host\", \"s_user\", \"minutes\", \"hours\", \"days\", \"months\", \"daysofweek\", \"command\") - values (${REQUEST_INSERT_PARAMS});" - else - fct_message " -> Cronjob already in database" - fi - fi - fi - done - IFS=${IFS_BAK} - done - done -} - -#------------------------------------------------------------------------------------------------------------------ -# Traitement -#------------------------------------------------------------------------------------------------------------------ - -DB_HOST="" -DB_DATABASE="" -DB_USER="" - -check_config -get_db_info -clean_table -refresh_cronjobs -fct_erreur 0 diff --git a/bin/sys_refresh_socle_bash.sh b/bin/sys_refresh_socle_bash.sh deleted file mode 100755 index 62373b5..0000000 --- a/bin/sys_refresh_socle_bash.sh +++ /dev/null @@ -1,185 +0,0 @@ -#!/bin/bash -#------------------------------------------------------------------------------------------------------------------ -# Script : sys_refresh_socle_bash.sh -# Auteur : Doug Le Tough -# Date : 23-07-2017 -# Version : 1.0.0 -# Objet : Permet la mise à jour de l'installation du socle bash -# sur les VM du Tetalab -# -#------------------------------------------------------------------------------------------------------------------ -# Mise a jour : -# -# 1.0.0 22/07/2017 - Doug Le Tough - Cre : Mise en production -# -#------------------------------------------------------------------------------------------------------------------ -# Dependances : Aucune -# -#------------------------------------------------------------------------------------------------------------------ -# Liste des options et arguments: -# -# Ce script n'accepte *aucune* option -# -# @OPT: f:bidon:::::: -# -#------------------------------------------------------------------------------------------------------------------ -# Liste des paramètres de configuration: -# -# SOCLE_DIR=/home/asr/ -# SOCLE_GIT_URL=ssh://git@tetalab.org:2213/tetalab/socle_bash -# TETALAB_VM[0]=jimmy.local.tetalab.org -# TETALAB_VM[1]=billy.local.tetalab.org -# TETALAB_VM[2]=marian.local.tetalab.org -# TETALAB_VM[3]=sonny.local.tetalab.org -# TETALAB_VM[4]=web.local.tetalab.org -# -#------------------------------------------------------------------------------------------------------------------ -# Liste des erreurs: -# -# 2 | erreur | stop | ${ERROR} -# -#------------------------------------------------------------------------------------------------------------------ -## -## Syntaxe : -## -------- -## -## prompt> sys_refresh_socle_bash.sh -## -## ex: -## sys_refresh_socle_bash.sh -## -## Prérequis: -## ---------- -## - Le script doit être executé par l'utilisateur asr sur sousetsuken -## -## Fonctionnement: -## --------------- -## Sur sousetsuken: Supprime la copie locale du dépôt Git du socle Bash, clone le dépôt Git dont l'URL est -## définie dans le fichier de configuration (SOCLE_GIT_URL) et installe le socle Bash. -## -## Puis, copie, sur l'ensemble des VM listées dans le fichier de configuration (TETALAB_VM[*]), -## le dépot Git local du socle Bash et l'installe. -## -#------------------------------------------------------------------------------------------------------------------ -# 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_config -{ - fct_message "Vérification de la configuration:" -color jaune - if [ ! -r ${SH_FICCFG} ]; then - ERROR="Fichier de configuration ${SH_FICCFG} absent ou illisible" - fct_erreur 2 - fi - if [ ${#SOCLE_DIR} -eq 0 ]; then - ERROR="Paramètre manquant ou vide dans le fichier de configuration: SOCLE_DIR" - fct_erreur 2 - fi - if [ ${#SOCLE_GIT_URL} -eq 0 ]; then - ERROR="Paramètre manquant ou vide dans le fichier de configuration: SOCLE_GIT_URL" - fct_erreur 2 - fi - if [ ${#TETALAB_VM[*]} -eq 0 ]; then - ERROR="Aucune VM définie dans le fichier de configuration" - fct_erreur 2 - fi - fct_message " * SOCLE_DIR: ${SOCLE_DIR}" - fct_message " * SOCLE_GIT_URL: ${SOCLE_GIT_URL}" - INDEX=0 - for VM in ${TETALAB_VM[@]} - do - fct_message " * VM[${INDEX}]: ${VM}" - INDEX=$(( INDEX+1 )) - done -} - -function rm_local_repo -{ - fct_message "Suppression de la copie locale du dépôt: ${SOCLE_DIR}" -color jaune - rm -Rf ${SOCLE_DIR} - RET_VAL=$? - if [ ! ${RET_VAL} -eq 0 ]; then - ERROR="Erreur lors de la suppression du dépôt local" - fct_erreur 2 - fi -} - -function install_local -{ - fct_message "Installation locale du socle Bash" -color jaune - sudo ${SOCLE_DIR}/install.sh - if [ ! ${RET_VAL} -eq 0 ]; then - ERROR="Erreur lors de l'installation du socle Bash" - fct_erreur 2 - fi - fct_message "----------------------------------------------------------" -} - -function clone_repo -{ - fct_message "Clonage du dépôt distant ${SOCLE_GIT_URL}" -color jaune - git clone ${SOCLE_GIT_URL} ${SOCLE_DIR} - RET_VAL=$? - if [ ! ${RET_VAL} -eq 0 ]; then - ERROR="Erreur lors du clonage du dépôt" - fct_erreur 2 - fi -} - -function cp_install_repo -{ - for VM in ${TETALAB_VM[@]} - do - fct_message "Suppression du dépôt sur la VM: ${VM}" -color jaune - ssh ${VM} "rm -Rf ${SOCLE_DIR}" - RET_VAL=$? - if [ ! ${RET_VAL} -eq 0 ]; then - ERROR="Erreur lors de la suppression du dépôt" - fct_erreur 2 - fi - fct_message "Copie du dépôt sur la VM: ${VM}" -color jaune - scp -qr ${SOCLE_DIR} ${VM}:${SOCLE_DIR} - if [ ! ${RET_VAL} -eq 0 ]; then - ERROR="Erreur lors de la copie du dépôt" - fct_erreur 2 - fi - fct_message "Installation du socle Bash sur ${VM}" -color jaune - ssh ${VM} "sudo ${SOCLE_DIR}/install.sh" - if [ ! ${RET_VAL} -eq 0 ]; then - ERROR="Erreur lors de l'installation du socle Bash" - fct_erreur 2 - fi - fct_message "----------------------------------------------------------" - done -} - -#------------------------------------------------------------------------------------------------------------------ -# Traitement -#------------------------------------------------------------------------------------------------------------------ - -check_config -rm_local_repo -clone_repo -install_local -cp_install_repo -fct_erreur 0 diff --git a/conf/ctl_all_nrpe.conf b/conf/ctl_all_nrpe.conf deleted file mode 100644 index 7120968..0000000 --- a/conf/ctl_all_nrpe.conf +++ /dev/null @@ -1,35 +0,0 @@ -IRC_BOT=/usr/local/bin/tetalab/ircbot.py -NRPE_CHECK_PATH=/etc/nagios/nrpe/ -NRPE_CHECK_BIN=/usr/libexec/nagios/check_nrpe -INFRA_SERVER=sousetsuken.local.tetalab.org -# VM monitorée par NRPE -# ATTENTION: web n'est *volontairement* pas monitorée par NRPE -TETALAB_VM[0]=sousetsuken.local.tetalab.org -TETALAB_VM[1]=jimmy.local.tetalab.org -TETALAB_VM[2]=billy.local.tetalab.org -TETALAB_VM[3]=sonny.local.tetalab.org -TETALAB_VM[4]=marian.local.tetalab.org -# Processus monitorés indépendemment de NRPE -PROCESS[0]=sousetsuken.local.tetalab.org:/usr/sbin/httpd -PROCESS[1]=sousetsuken.local.tetalab.org:/usr/sbin/named -PROCESS[2]=sousetsuken.local.tetalab.org:/usr/sbin/ntpd -PROCESS[3]=sousetsuken.local.tetalab.org:/usr/sbin/crond -PROCESS[4]=sousetsuken.local.tetalab.org:/usr/bin/nrpe -PROCESS[5]=marian.local.tetalab.org:/usr/sbin/httpd -PROCESS[6]=marian.local.tetalab.org:/usr/sbin/ntpd -PROCESS[7]=marian.local.tetalab.org:/usr/sbin/crond -PROCESS[8]=marian.local.tetalab.org:/usr/bin/nrpe -PROCESS[9]=web.local.tetalab.org:/usr/lib/postfix/sbin/master -PROCESS[10]=sonny.local.tetalab.org:/usr/lib64/postgresql/9.6/bin/postgres -PROCESS[11]=sonny.local.tetalab.org:/usr/sbin/ntpd -PROCESS[12]=sonny.local.tetalab.org:/usr/sbin/crond -PROCESS[13]=sonny.local.tetalab.org:/usr/bin/nrpe -PROCESS[14]=jimmy.local.tetalab.org:/usr/sbin/httpd -PROCESS[15]=jimmy.local.tetalab.org:/usr/sbin/node -PROCESS[16]=jimmy.local.tetalab.org:/usr/sbin/ntpd -PROCESS[17]=jimmy.local.tetalab.org:/usr/sbin/crond -PROCESS[18]=jimmy.local.tetalab.org:/usr/bin/nrpe -PROCESS[19]=billy.local.tetalab.org:/usr/sbin/ntpd -PROCESS[20]=billy.local.tetalab.org:/usr/sbin/crond -PROCESS[21]=billy.local.tetalab.org:/usr/bin/nrpe -PROCESS[22]=billy.local.tetalab.org:/usr/sbin/httpd diff --git a/conf/ctl_vm.conf b/conf/ctl_vm.conf deleted file mode 100644 index f8cc862..0000000 --- a/conf/ctl_vm.conf +++ /dev/null @@ -1,8 +0,0 @@ -NUC=nuc.tetalab.org -NUC_SSH_PORT=2022 -IRC_BOT=/usr/local/bin/tetalab/ircbot.py -TETALAB_VM[0]=jimmy -TETALAB_VM[1]=billy -TETALAB_VM[2]=marian -TETALAB_VM[3]=sonny -TETALAB_VM[4]=web diff --git a/conf/sys_refresh_ref_cron.conf b/conf/expl_dummy_script.conf similarity index 58% rename from conf/sys_refresh_ref_cron.conf rename to conf/expl_dummy_script.conf index 96ad06e..594c9e2 100644 --- a/conf/sys_refresh_ref_cron.conf +++ b/conf/expl_dummy_script.conf @@ -1,8 +1,5 @@ -PGPASSFILE=/home/asr/.pgpass -DB_TABLE=ref_cron -TETALAB_USERS[0]=root -TETALAB_USERS[1]=asr -TETALAB_VM[0]=sousetsuken.local.tetalab.org +DUMMY_VAR="Variable bidon pour test" +TETALAB_VM[0]=sousetsukenlocal.tetalab.org TETALAB_VM[1]=jimmy.local.tetalab.org TETALAB_VM[2]=billy.local.tetalab.org TETALAB_VM[3]=marian.local.tetalab.org diff --git a/conf/expl_refresh_thsf_site.conf b/conf/expl_refresh_thsf_site.conf deleted file mode 100644 index d3ec7fa..0000000 --- a/conf/expl_refresh_thsf_site.conf +++ /dev/null @@ -1,5 +0,0 @@ -THSF_DIR=/var/www/www.thsf.net -THSF_GIT_URL=ssh://git@jimmy:/fatalerrors/thsf-pico -THSF_GIT_USER=asr -THSF_HTTPD_USER=apache -THSF_DIR_MODE=755 diff --git a/conf/lisezmoi.txt b/conf/lisezmoi.txt new file mode 100644 index 0000000..7dd8fc5 --- /dev/null +++ b/conf/lisezmoi.txt @@ -0,0 +1 @@ +Ce repertoire recoit les fichiers de configuration utilises par les scripts diff --git a/conf/sys_create_vhost.conf b/conf/sys_create_vhost.conf deleted file mode 100644 index 3005257..0000000 --- a/conf/sys_create_vhost.conf +++ /dev/null @@ -1,5 +0,0 @@ -RPROXY_VHOST_TEMPLATE=rproxy_template.conf -REMOTE_VHOST_TEMPLATE=backend_template.conf -DEHYDRATED_DOMAIN_LIST=/etc/dehydrated/domains.txt -HTTPD_PATH=/etc/httpd/sites-available -WWW_ROOT_DIR=/var/www diff --git a/conf/sys_refresh_socle_bash.conf b/conf/sys_refresh_socle_bash.conf deleted file mode 100644 index 5666f0d..0000000 --- a/conf/sys_refresh_socle_bash.conf +++ /dev/null @@ -1,7 +0,0 @@ -SOCLE_DIR=/home/asr/socle_bash -SOCLE_GIT_URL=ssh://git@jimmy/tetalab/socle_bash -TETALAB_VM[0]=jimmy.local.tetalab.org -TETALAB_VM[1]=billy.local.tetalab.org -TETALAB_VM[2]=marian.local.tetalab.org -TETALAB_VM[3]=sonny.local.tetalab.org -TETALAB_VM[4]=web.local.tetalab.org diff --git a/mod/backend_template.conf b/mod/backend_template.conf deleted file mode 100644 index 49d830a..0000000 --- a/mod/backend_template.conf +++ /dev/null @@ -1,13 +0,0 @@ - - ServerName SITE_NAME - ServerAdmin bofh@tetalab.org - DocumentRoot /var/www/SITE_NAME - RemoteIPHeader X-Forwarded-For - RemoteIPInternalProxy 192.168.122.0/24 - - AllowOverride All - Require all granted - - ErrorLog /var/log/httpd/SITE_NAME.error.log - CustomLog /var/log/httpd/SITE_NAME.access.log combined - diff --git a/mod/lisezmoi.txt b/mod/lisezmoi.txt new file mode 100644 index 0000000..0cbcf1c --- /dev/null +++ b/mod/lisezmoi.txt @@ -0,0 +1 @@ +Ce repertoire recoit les modeles utilises par les scripts diff --git a/mod/rproxy_template.conf b/mod/rproxy_template.conf deleted file mode 100644 index 15c66c9..0000000 --- a/mod/rproxy_template.conf +++ /dev/null @@ -1,36 +0,0 @@ - - # ReverseProxy with https redirect template - # - # Written by Doug Le Tough - # - # Usage: - # sed -s 's/SITE_NAME/example.com/g' site_template.conf > example.org.conf - # sed -i 's/SITE_HOST/hostname.local.tetalab.org/g' example.org.conf - # - Define FQDN SITE_NAME - Define HOST SITE_HOST - Define HOST_PORT SITE_PORT - ServerName ${FQDN} - ### All HTTP requests are converted to HTTPS requests - - RewriteEngine On - RewriteCond %{HTTPS} off - RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} - - ErrorLog "/var/log/httpd/${FQDN}_error.log" - CustomLog "/var/log/httpd/${FQDN}_access.log" Combined - - - Header always set Strict-Transport-Security "max-age=63072000; includeSubDomains" - ServerName ${FQDN} - ProxyPreserveHost On - SSLEngine on - SSLCertificateFile /etc/dehydrated/certs/${FQDN}/cert.pem - SSLCertificateKeyFile /etc/dehydrated/certs/${FQDN}/privkey.pem - SSLCertificateChainFile /etc/dehydrated/certs/${FQDN}/fullchain.pem - RequestHeader set X_FORWARDED_PROTO 'https' - ProxyPass / http://${HOST}:${HOST_PORT}/ - ProxyPassReverse / http://${HOST}:${HOST_PORT}/ - ErrorLog "/var/log/httpd/${FQDN}_error.log" - CustomLog "/var/log/httpd/${FQDN}_access.log" Combined - diff --git a/msg/ctl_all_nrpe.msg b/msg/ctl_all_nrpe.msg deleted file mode 100644 index 8e0357a..0000000 --- a/msg/ctl_all_nrpe.msg +++ /dev/null @@ -1,2 +0,0 @@ -2 | erreur | stop | ${ERROR} -3 | erreur | continu | ${ERROR} diff --git a/msg/ctl_host_process.msg b/msg/ctl_host_process.msg deleted file mode 100644 index 0249036..0000000 --- a/msg/ctl_host_process.msg +++ /dev/null @@ -1,3 +0,0 @@ -1 | erreur | stop | Processus inexistant sur ${vm} -2 | erreur | stop | ${ERROR} -3 | erreur | continu | ${ERROR} diff --git a/msg/ctl_vm.msg b/msg/ctl_vm.msg deleted file mode 100644 index 8e0357a..0000000 --- a/msg/ctl_vm.msg +++ /dev/null @@ -1,2 +0,0 @@ -2 | erreur | stop | ${ERROR} -3 | erreur | continu | ${ERROR} diff --git a/msg/sys_create_vhost.msg b/msg/expl_dummy_script.msg similarity index 100% rename from msg/sys_create_vhost.msg rename to msg/expl_dummy_script.msg diff --git a/msg/expl_refresh_thsf_site.msg b/msg/expl_refresh_thsf_site.msg deleted file mode 100644 index 8e0357a..0000000 --- a/msg/expl_refresh_thsf_site.msg +++ /dev/null @@ -1,2 +0,0 @@ -2 | erreur | stop | ${ERROR} -3 | erreur | continu | ${ERROR} diff --git a/msg/expl_transfert_dir.msg b/msg/expl_transfert_dir.msg deleted file mode 100644 index d85a6db..0000000 --- a/msg/expl_transfert_dir.msg +++ /dev/null @@ -1,3 +0,0 @@ -1 | erreur | stop | Sortie du script -2 | erreur | stop | ${ERROR} -3 | erreur | exec | rm_archives diff --git a/msg/sys_deploy_socle.msg b/msg/sys_deploy_socle.msg deleted file mode 100644 index 1b5ec49..0000000 --- a/msg/sys_deploy_socle.msg +++ /dev/null @@ -1 +0,0 @@ -2 | erreur | stop | ${ERROR} diff --git a/msg/sys_refresh_ref_cron.msg b/msg/sys_refresh_ref_cron.msg deleted file mode 100644 index 8e0357a..0000000 --- a/msg/sys_refresh_ref_cron.msg +++ /dev/null @@ -1,2 +0,0 @@ -2 | erreur | stop | ${ERROR} -3 | erreur | continu | ${ERROR} diff --git a/msg/sys_refresh_socle_bash.msg b/msg/sys_refresh_socle_bash.msg deleted file mode 100644 index 8e0357a..0000000 --- a/msg/sys_refresh_socle_bash.msg +++ /dev/null @@ -1,2 +0,0 @@ -2 | erreur | stop | ${ERROR} -3 | erreur | continu | ${ERROR}