Browse Source

"Déplacement scripts dans autres depots + ajout dummy + correction install.sh"

Doug Le Tough 3 years ago
parent
commit
e3afd19eff

+ 0
- 218
bin/ctl_all_nrpe.sh View File

@@ -1,218 +0,0 @@
1
-#!/bin/bash
2
-#------------------------------------------------------------------------------------------------------------------
3
-# Script         : ctl_all_nrpe.sh
4
-# Auteur         : Doug Le Tough
5
-# Date           : 23-07-2017
6
-# Version        : 1.0.0
7
-# Objet          : Fait tous les contrôles NRPE standars sur l'ensemble des VM listées 
8
-#                  dans le fichier de configuration et notifie les incidents sur freenode.net#tetalab
9
-#
10
-#------------------------------------------------------------------------------------------------------------------
11
-# Mise a jour :
12
-#
13
-# 1.0.0  22/07/2017   - Doug Le Tough   - Cre : Mise en production
14
-#
15
-#------------------------------------------------------------------------------------------------------------------
16
-# Dependances :
17
-#               - /usr/local/bin/tetalab/ircbot.py
18
-#               - ctl_host_process.sh
19
-#
20
-#------------------------------------------------------------------------------------------------------------------
21
-# Liste des options et arguments:
22
-#
23
-# Ce script n'accepte *aucune* option
24
-#
25
-# @OPT: f:bidon::::::
26
-#
27
-#------------------------------------------------------------------------------------------------------------------
28
-# Liste des paramètres de configuration:
29
-#
30
-# IRC_BOT=/usr/local/bin/tetalab/ircbot.py
31
-# NRPE_CHECK_PATH=/etc/nagios/nrpe/
32
-# NRPE_CHECK_BIN=/usr/libexec/nagios/check_nrpe
33
-# INFRA_SERVER=sousetsuken.local.tetalab.org
34
-# # VM monitorée par NRPE
35
-# # ATTENTION: web n'est *volontairement* pas monitorée par NRPE
36
-# TETALAB_VM[0]=sousetsuken.local.tetalab.org
37
-# TETALAB_VM[1]=jimmy.local.tetalab.org
38
-# TETALAB_VM[2]=billy.local.tetalab.org
39
-# TETALAB_VM[3]=sonny.local.tetalab.org
40
-# TETALAB_VM[4]=marian.local.tetalab.org
41
-# # Processus monitorés indépendemment de NRPE
42
-# PROCESS[0]=sousetsuken.local.tetalab.org:/usr/sbin/httpd
43
-# PROCESS[1]=sousetsuken.local.tetalab.org:/usr/sbin/named
44
-# PROCESS[2]=sousetsuken.local.tetalab.org:/usr/sbin/ntpd
45
-# PROCESS[3]=sousetsuken.local.tetalab.org:/usr/sbin/crond
46
-# PROCESS[4]=sousetsuken.local.tetalab.org:/usr/bin/nrpe
47
-# PROCESS[5]=marian.local.tetalab.org:/usr/sbin/httpd
48
-# PROCESS[6]=marian.local.tetalab.org:/usr/sbin/ntpd
49
-# PROCESS[7]=marian.local.tetalab.org:/usr/sbin/crond
50
-# PROCESS[8]=marian.local.tetalab.org:/usr/bin/nrpe
51
-# PROCESS[9]=web.local.tetalab.org:/usr/lib/postfix/sbin/master
52
-# PROCESS[10]=sonny.local.tetalab.org:/usr/lib64/postgresql/9.6/bin/postgres
53
-# PROCESS[11]=sonny.local.tetalab.org:/usr/sbin/ntpd
54
-# PROCESS[12]=sonny.local.tetalab.org:/usr/sbin/crond
55
-# PROCESS[13]=sonny.local.tetalab.org:/usr/bin/nrpe
56
-# PROCESS[14]=jimmy.local.tetalab.org:/usr/sbin/httpd
57
-# PROCESS[15]=jimmy.local.tetalab.org:/usr/sbin/node
58
-# PROCESS[16]=jimmy.local.tetalab.org:/usr/sbin/ntpd
59
-# PROCESS[17]=jimmy.local.tetalab.org:/usr/sbin/crond
60
-# PROCESS[18]=jimmy.local.tetalab.org:/usr/bin/nrpe
61
-# PROCESS[19]=billy.local.tetalab.org:/usr/sbin/ntpd
62
-# PROCESS[20]=billy.local.tetalab.org:/usr/sbin/crond
63
-# PROCESS[21]=billy.local.tetalab.org:/usr/bin/nrpe
64
-# PROCESS[22]=billy.local.tetalab.org:/usr/sbin/httpd
65
-#
66
-#------------------------------------------------------------------------------------------------------------------
67
-# Liste des erreurs:
68
-#
69
-# 2 | erreur | stop | ${ERROR}
70
-# 3 | erreur | continu | ${ERROR}
71
-#
72
-#------------------------------------------------------------------------------------------------------------------
73
-##
74
-## Syntaxe :
75
-## --------
76
-##
77
-##  prompt> ctl_all_nrpe.sh
78
-##
79
-##  ex:
80
-##       ctl_all_nrpe.sh
81
-##
82
-## Prérequis:
83
-## ----------
84
-## - Le script doit être executé par l'utilisateur asr sur sousetsuken
85
-##
86
-## Fonctionnement:
87
-## ---------------
88
-## Depuis sousetsuken, récupère depuis le répertoire local NRPE_CHECK_PATH la liste des checks à effectuer
89
-## et pour ceux qui sont executables les execute sur les VM définies dans le fichier de configuration.
90
-## puis relève les incidents et les notifie sur le chan freenode.net#tetalab en utilisant le script python
91
-## /usr/local/bin/tetalab/ircbot.py
92
-##
93
-## Ce script utilise ctl_host_process.sh pour la vérification des processus.
94
-##
95
-#------------------------------------------------------------------------------------------------------------------
96
-#                     Initialisation de l'environement
97
-#------------------------------------------------------------------------------------------------------------------
98
-
99
-if [ "${USER}" != "asr" ]; then
100
-  ERROR="Seul l'utilisateur asr peut utiliser ce script"
101
-  echo -e "\033[91m${ERROR}\033[0m"
102
-  exit 1
103
-fi
104
-
105
-source /etc/profile.d/tetalab.sh
106
-
107
-if [ ! -f ${NC_EXPL_CFG}/init.conf ]; then
108
-  echo "Le fichier d'initialisation du socle \${NC_EXPL_CFG}/init.conf n'éxiste pas !"
109
-  echo "Arrêt du script par sécurité"
110
-  exit 250
111
-fi
112
-
113
-source ${NC_EXPL_CFG}/init.conf
114
-
115
-#------------------------------------------------------------------------------------------------------------------
116
-#  Fonctions
117
-#------------------------------------------------------------------------------------------------------------------
118
-
119
-function check_config
120
-{
121
-  fct_message "Vérification de la configuration:" -color jaune
122
-  if [ ! -r ${SH_FICCFG} ]; then
123
-    ERROR="Fichier de configuration ${SH_FICCFG} absent ou illisible"
124
-    fct_erreur 2
125
-  fi
126
-  if [ ${#IRC_BOT} -eq 0 ]; then
127
-    ERROR="Paramètre manquant ou vide dans le fichier de configuration: IRC_BOT"
128
-    fct_erreur 2
129
-  fi
130
-  if [ ${#NRPE_CHECK_PATH} -eq 0 ]; then
131
-    ERROR="Paramètre manquant ou vide dans le fichier de configuration: NRPE_CHECK_PATH"
132
-    fct_erreur 2
133
-  fi
134
-  if [ ${#NRPE_CHECK_BIN} -eq 0 ]; then
135
-    ERROR="Paramètre manquant ou vide dans le fichier de configuration: NRPE_CHECK_BIN"
136
-    fct_erreur 2
137
-  fi
138
-  if [ ${#TETALAB_VM[*]} -eq 0 ]; then
139
-    ERROR="Aucune VM définie dans le fichier de configuration"
140
-    fct_erreur 2
141
-  fi
142
-  if [ ${#PROCESS[*]} -eq 0 ]; then
143
-    ERROR="Aucun processus défini dans le fichier de configuration"
144
-    fct_erreur 2
145
-  fi
146
-  fct_message "  * IRC_BOT: ${IRC_BOT}"
147
-  fct_message "  * NRPE_CHECK_PATH: ${NRPE_CHECK_PATH}"
148
-  fct_message "  * NRPE_CHECK_BIN: ${NRPE_CHECK_BIN}"
149
-  INDEX=0
150
-  for VM in ${TETALAB_VM[@]}
151
-  do
152
-    fct_message "  * VM[${INDEX}]: ${VM}"
153
-    INDEX=$(( INDEX+1 ))
154
-  done
155
-}
156
-
157
-function check_all
158
-{
159
-  for CHECK in  $(find ${NRPE_CHECK_PATH} -type f -executable -exec basename {} .cfg \; | sort )
160
-  do
161
-    fct_message "Contrôle ${CHECK}:" -color jaune
162
-    for HOST in ${TETALAB_VM[@]}
163
-    do
164
-      CRITICAL=1
165
-      if [ "${HOST}" == "${INFRA_SERVER}" ]; then
166
-        fct_message "  * ${HOST}"
167
-        RESULT=$(${NRPE_CHECK_BIN} -H ${HOST} -c ${CHECK} | cut -d'|' -f1)
168
-        CRITICAL=$(echo ${RESULT} | grep OK | wc -l)
169
-      elif [ $(echo ${CHECK} | grep "check_http_" | wc -l) -eq 0 ]; then
170
-        # On ne fait pas les checks HTTP sur les autres VM que le serveur d'infra (sousetsuken)
171
-        fct_message "  * ${HOST}"
172
-        RESULT=$(${NRPE_CHECK_BIN} -H ${HOST} -c ${CHECK} | cut -d'|' -f1)
173
-        CRITICAL=$(echo ${RESULT} | grep OK | wc -l)
174
-      fi
175
-      if [ ! ${CRITICAL} -eq 1 ]; then
176
-        fct_message "    - CRITICAL" -color orange
177
-        MESSAGE="${MESSAGE}|||${HOST}: ${CHECK}: ${RESULT}"                                                                                                                 
178
-      fi
179
-    done
180
-  done
181
-}
182
-
183
-function check_process
184
-{
185
-  fct_message "Vérification des processus:"
186
-  for PROC in ${PROCESS[@]}
187
-  do
188
-    HOST=$(echo ${PROC} | cut -d: -f1)
189
-    PROC=$(echo ${PROC} | cut -d: -f2)
190
-    ctl_host_process.sh -vm ${HOST} -process ${PROC}
191
-    RET_VAL=$?
192
-    if [ ! ${RET_VAL} -eq 0 ]; then
193
-      fct_message "Processus ${PROC} inexistant sur ${HOST}" -color rose
194
-      MESSAGE="${MESSAGE}|||${HOST}: CRITICAL: Processus ${PROC} inexistant sur ${HOST}" 
195
-    fi
196
-  done
197
-}
198
-
199
-function send_message
200
-{
201
-  if [ ${#MESSAGE} -eq 0 ]; then
202
-    fct_message "Aucun message à envoyer" -color jaune
203
-    fct_erreur 0
204
-  fi
205
-  fct_message "Envoi du message ${MESSAGE}" -color jaune
206
-  ${IRC_BOT} "${MESSAGE}"
207
-}
208
-
209
-#------------------------------------------------------------------------------------------------------------------
210
-# Traitement
211
-#------------------------------------------------------------------------------------------------------------------
212
-
213
-MESSAGE=""
214
-check_config
215
-check_all
216
-check_process
217
-send_message
218
-fct_erreur 0

+ 0
- 87
bin/ctl_host_process.sh View File

@@ -1,87 +0,0 @@
1
-#!/bin/bash
2
-#------------------------------------------------------------------------------------------------------------------
3
-# Script         : ctl_host_process.sh
4
-# Auteur         : Doug Le Tough
5
-# Date           : 23-07-2017
6
-# Version        : 1.0.0
7
-# Objet          : Vérifie sur la VM dont le nom est passée en option la présence d'un processus
8
-#                  dont le nom est passé en option
9
-#
10
-#------------------------------------------------------------------------------------------------------------------
11
-# Mise a jour :
12
-#
13
-# 1.0.0  22/07/2017   - Doug Le Tough   - Cre : Mise en production
14
-#
15
-#------------------------------------------------------------------------------------------------------------------
16
-# Liste des options et arguments:
17
-#
18
-# @OPT: o:vm:vm:1/1::::
19
-# @OPT: o:process:process:1/1::::
20
-#
21
-#------------------------------------------------------------------------------------------------------------------
22
-# Liste des erreurs:
23
-#
24
-# 1 | erreur | stop | Processus inexistant sur ${vm}
25
-# 2 | erreur | stop | ${ERROR}
26
-# 3 | erreur | continu | ${ERROR}
27
-#
28
-#------------------------------------------------------------------------------------------------------------------
29
-##
30
-## Syntaxe :
31
-## --------
32
-##
33
-##  prompt> ctl_host_process.sh -vm <VM> -process <PROCESS>
34
-##
35
-##  ex:
36
-##       ctl_host_process.sh -vm sousetsuken -process /usr/sbin/httpd
37
-##
38
-## Prérequis:
39
-## ----------
40
-## - Le script doit être executé par l'utilisateur asr sur sousetsuken
41
-##
42
-## Fonctionnement:
43
-## ---------------
44
-## Depuis sousetsuken se connecte sur la VM dont le nom est passé en option et vérifie la présence du
45
-## du processus à l'aide de pidof
46
-##
47
-## Renvoie le code de sortie 1 si le process n'existe pas sur la VM et 0 dans le cas contraire.
48
-##
49
-#------------------------------------------------------------------------------------------------------------------
50
-#                     Initialisation de l'environement
51
-#------------------------------------------------------------------------------------------------------------------
52
-
53
-if [ "${USER}" != "asr" ]; then
54
-  ERROR="Seul l'utilisateur asr peut utiliser ce script"
55
-  echo -e "\033[91m${ERROR}\033[0m"
56
-  exit 1
57
-fi
58
-
59
-source /etc/profile.d/tetalab.sh
60
-
61
-if [ ! -f ${NC_EXPL_CFG}/init.conf ]; then
62
-  echo "Le fichier d'initialisation du socle \${NC_EXPL_CFG}/init.conf n'existe pas !"
63
-  echo "Arrêt du script par sécurité"
64
-  exit 250
65
-fi
66
-
67
-source ${NC_EXPL_CFG}/init.conf
68
-
69
-#------------------------------------------------------------------------------------------------------------------
70
-#  Fonctions
71
-#------------------------------------------------------------------------------------------------------------------
72
-
73
-function check_process
74
-{
75
-  fct_message "Vérification de la présence du processus ${process} sur ${vm}:"
76
-  PID=$(ssh ${vm} "pidof ${process}")
77
-  if [ ${#PID} -eq 0 ]; then
78
-    fct_erreur 1
79
-  fi
80
-}
81
-
82
-#------------------------------------------------------------------------------------------------------------------
83
-# Traitement
84
-#------------------------------------------------------------------------------------------------------------------
85
-
86
-check_process
87
-fct_erreur 0

bin/ctl_vm.sh → bin/expl_dummy_script.sh View File

@@ -1,50 +1,49 @@
1 1
 #!/bin/bash
2 2
 #------------------------------------------------------------------------------------------------------------------
3
-# Script         : ctl_vm.sh
3
+# Script         : expl_dummy_script.sh
4 4
 # Auteur         : Doug Le Tough
5
-# Date           : 23-07-2017
5
+# Date           : 26-07-2017
6 6
 # Version        : 1.0.0
7
-# Objet          : Vérifie l'état des VM de l'infrastructure
7
+# Objet          : Script d'exemple qui liste les VM définies dans son fichier de configuration
8 8
 #
9 9
 #------------------------------------------------------------------------------------------------------------------
10 10
 # Mise a jour :
11 11
 #
12
-# 1.0.0  23/07/2017   - Doug Le Tough   - Cre : Mise en production
12
+# 1.0.0  22/07/2017   - Doug Le Tough   - Cre : Mise en production
13 13
 #
14 14
 #------------------------------------------------------------------------------------------------------------------
15
-# Liste des options et arguments:
15
+# Dependances : Aucune
16 16
 #
17
-# Ce script n'accepte *aucune* option
17
+#------------------------------------------------------------------------------------------------------------------
18
+# Liste des options et arguments:
18 19
 #
19
-# @OPT: f:bidon::::::
20
+# @OPT: f:list_vm:list_vm:1/1:true:::
20 21
 #
21 22
 #------------------------------------------------------------------------------------------------------------------
22
-# Liste des erreurs:
23
+# Liste des paramètres de configuration:
23 24
 #
24
-# 2 | erreur | stop | ${ERROR}
25
-# 3 | erreur | continu | ${ERROR}
25
+# DUMMY_VAR="Variable bidon pour test"
26
+# TETALAB_VM[0]=sousetsukenlocal.tetalab.org
27
+# TETALAB_VM[1]=jimmy.local.tetalab.org
28
+# TETALAB_VM[2]=billy.local.tetalab.org
29
+# TETALAB_VM[3]=marian.local.tetalab.org
30
+# TETALAB_VM[4]=sonny.local.tetalab.org
31
+# TETALAB_VM[5]=web.local.tetalab.org
26 32
 #
27 33
 #------------------------------------------------------------------------------------------------------------------
28
-# Liste des paramètres de configuration:
34
+# Liste des erreurs:
29 35
 #
30
-# NUC=nuc.local.tetalab.org
31
-# NUC_SSH_PORT=2022
32
-# IRC_BOT=/usr/local/bin/tetalab/ircbot.py
33
-# TETALAB_VM[0]=jimmy.local.tetalab.org
34
-# TETALAB_VM[1]=billy.local.tetalab.org
35
-# TETALAB_VM[2]=marian.local.tetalab.org
36
-# TETALAB_VM[3]=sonny.local.tetalab.org
37
-# TETALAB_VM[4]=web.local.tetalab.org
36
+# 2 | erreur | stop | ${ERROR}
38 37
 #
39 38
 #------------------------------------------------------------------------------------------------------------------
40 39
 ##
41 40
 ## Syntaxe :
42 41
 ## --------
43 42
 ##
44
-##  prompt> ctl_vm.sh
43
+##  prompt> expl_dummy_script.sh [-list_vm false]
45 44
 ##
46 45
 ##  ex:
47
-##       ctl_vm.sh
46
+##       expl_dummy_script.sh
48 47
 ##
49 48
 ## Prérequis:
50 49
 ## ----------
@@ -52,8 +51,9 @@
52 51
 ##
53 52
 ## Fonctionnement:
54 53
 ## ---------------
55
-## Depuis sousetsuken se connecte sur le Nuc et vérifie l'état des VM inscrite dans le fichier de configuration
56
-## et notifie les incidents sur freenode.net#tetalab
54
+## Affiche sa configuration et liste les VM listées dans son fichier de configuration (TETALAB_VM[*]).
55
+##
56
+## Si l'option -list_vm est positionnée à false, le script ne fait qu'afficher sa configuration.
57 57
 ##
58 58
 #------------------------------------------------------------------------------------------------------------------
59 59
 #                     Initialisation de l'environement
@@ -68,7 +68,7 @@ fi
68 68
 source /etc/profile.d/tetalab.sh
69 69
 
70 70
 if [ ! -f ${NC_EXPL_CFG}/init.conf ]; then
71
-  echo "Le fichier d'initialisation du socle \${NC_EXPL_CFG}/init.conf n'existe pas !"
71
+  echo "Le fichier d'initialisation du socle \${NC_EXPL_CFG}/init.conf n'éxiste pas !"
72 72
   echo "Arrêt du script par sécurité"
73 73
   exit 250
74 74
 fi
@@ -86,25 +86,15 @@ function check_config
86 86
     ERROR="Fichier de configuration ${SH_FICCFG} absent ou illisible"
87 87
     fct_erreur 2
88 88
   fi
89
-  if [ ${#NUC} -eq 0 ]; then
90
-    ERROR="Paramètre manquant ou vide dans le fichier de configuration: NUC"
91
-    fct_erreur 2
92
-  fi
93
-  if [ ${#NUC_SSH_PORT} -eq 0 ]; then
94
-    ERROR="Paramètre manquant ou vide dans le fichier de configuration: NUC_SSH_PORT"
95
-    fct_erreur 2
96
-  fi
97
-  if [ ${#IRC_BOT} -eq 0 ]; then
98
-    ERROR="Paramètre manquant ou vide dans le fichier de configuration: IRC_BOT"
89
+  if [ ${#DUMMY_VAR} -eq 0 ]; then
90
+    ERROR="Paramètre manquant ou vide dans le fichier de configuration: DUMMY_VAR"
99 91
     fct_erreur 2
100 92
   fi
101 93
   if [ ${#TETALAB_VM[*]} -eq 0 ]; then
102 94
     ERROR="Aucune VM définie dans le fichier de configuration"
103 95
     fct_erreur 2
104 96
   fi
105
-  fct_message "  * NUC: ${NUC}"
106
-  fct_message "  * NUC_SSH_PORT: ${NUC_SSH_PORT}"
107
-  fct_message "  * IRC_BOT: ${IRC_BOT}"
97
+  fct_message "  * DUMMY_VAR: ${DUMMY_VAR}"
108 98
   INDEX=0
109 99
   for VM in ${TETALAB_VM[@]}
110 100
   do
@@ -113,40 +103,23 @@ function check_config
113 103
   done
114 104
 }
115 105
 
116
-function check_vm
117
-{
118
-  fct_message "Vérification de l'état des VM:" -color jaune
119
-  for VM in ${TETALAB_VM[@]}
120
-  do
121
-    VM_STATUS=$(ssh ${NUC} -p ${NUC_SSH_PORT} "/usr/bin/sudo virsh domstate ${VM} 2>/dev/null | grep running | wc -l")
122
-    if [ ! ${VM_STATUS} -eq 1 ]; then
123
-      VM_STATUS=$(ssh ${NUC} -p ${NUC_SSH_PORT} "/usr/bin/sudo virsh domstate ${VM} 2>/dev/null | head -n1")
124
-      VM_STATUS="${VM}: VM is ${VM_STATUS}"
125
-      fct_message "  - ${VM_STATUS}" -color rose
126
-      MESSAGE="${MESSAGE}|||${VM_STATUS}"
127
-      continue
128
-    fi
129
-    VM_STATUS="${VM}: VM is running"
130
-    fct_message "  - ${VM_STATUS}" -color vert
131
-  done
132
-}
133
-
134
-function send_message
106
+function list_vm
135 107
 {
136
-  if [ ${#MESSAGE} -eq 0 ]; then
137
-    fct_message "Aucun message à envoyer" -color jaune
138
-    fct_erreur 0
108
+  if [ "${list_vm}" == "true" ]; then
109
+    fct_message "Liste des VM définies dans ${SH_FICCFG}:" -color jaune
110
+    INDEX=0
111
+    for VM in ${TETALAB_VM[@]}
112
+    do
113
+      fct_message "  * VM[${INDEX}]: ${VM}"
114
+      INDEX=$(( INDEX+1 ))
115
+    done
139 116
   fi
140
-  fct_message "Envoi du message ${MESSAGE}" -color jaune
141
-  ${IRC_BOT} "${MESSAGE}"
142 117
 }
143 118
 
144 119
 #------------------------------------------------------------------------------------------------------------------
145 120
 # Traitement
146 121
 #------------------------------------------------------------------------------------------------------------------
147 122
 
148
-MESSAGE=""
149 123
 check_config
150
-check_vm
151
-send_message
124
+list_vm
152 125
 fct_erreur 0

+ 0
- 166
bin/expl_refresh_thsf_site.sh View File

@@ -1,166 +0,0 @@
1
-#!/bin/bash
2
-#------------------------------------------------------------------------------------------------------------------
3
-# Script         : expl_refresh_thsf_site.sh
4
-# Auteur         : Doug Le Tough
5
-# Date           : 23-07-2017
6
-# Version        : 1.0.0
7
-# Objet          : Permet la mise à jour du site du THSF à partir du dépôt git
8
-#
9
-#------------------------------------------------------------------------------------------------------------------
10
-# Mise a jour :
11
-#
12
-# 1.0.0  22/07/2017   - Doug Le Tough   - Cre : Mise en production
13
-#
14
-#------------------------------------------------------------------------------------------------------------------
15
-# Dependances : Aucune
16
-#
17
-#------------------------------------------------------------------------------------------------------------------
18
-# Liste des options et arguments:
19
-#
20
-# Ce script n'accepte *aucune* option
21
-#
22
-# @OPT: f:bidon::::::
23
-#
24
-#------------------------------------------------------------------------------------------------------------------
25
-# Liste des paramètres de configuration:
26
-#
27
-# THSF_DIR=/var/www/www.thsf.net
28
-# THSF_GIT_URL=ssh://git@jimmy:/fatalerrors/thsf-pico
29
-# THSF_GIT_USER=asr
30
-# THSF_HTTPD_USER=apache
31
-# THSF_DIR_MODE=755
32
-#
33
-#------------------------------------------------------------------------------------------------------------------
34
-# Liste des erreurs:
35
-#
36
-# 2 | erreur | stop | ${ERROR}
37
-#
38
-#------------------------------------------------------------------------------------------------------------------
39
-##
40
-## Syntaxe :
41
-## --------
42
-##
43
-##  prompt> expl_refresh_thsf_site.sh
44
-##
45
-##  ex:
46
-##       expl_refresh_thsf_site.sh
47
-##
48
-## Prérequis:
49
-## ----------
50
-## - Le script doit être executé par l'utilisateur asr sur marian
51
-##
52
-## Fonctionnement:
53
-## ---------------
54
-## 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.
55
-## Met à jour a copie locale si nécessaire.
56
-##
57
-#------------------------------------------------------------------------------------------------------------------
58
-#                     Initialisation de l'environement
59
-#------------------------------------------------------------------------------------------------------------------
60
-
61
-if [ "${USER}" != "asr" ]; then
62
-  ERROR="Seul l'utilisateur asr peut utiliser ce script"
63
-  echo -e "\033[91m${ERROR}\033[0m"
64
-  exit 1
65
-fi
66
-
67
-source /etc/profile.d/tetalab.sh
68
-
69
-if [ ! -f ${NC_EXPL_CFG}/init.conf ]; then
70
-  echo "Le fichier d'initialisation du socle \${NC_EXPL_CFG}/init.conf n'éxiste pas !"
71
-  echo "Arrêt du script par sécurité"
72
-  exit 250
73
-fi
74
-
75
-source ${NC_EXPL_CFG}/init.conf
76
-
77
-#------------------------------------------------------------------------------------------------------------------
78
-#  Fonctions
79
-#------------------------------------------------------------------------------------------------------------------
80
-
81
-function check_config
82
-{
83
-  fct_message "Vérification de la configuration:" -color jaune
84
-  if [ ! -r ${SH_FICCFG} ]; then
85
-    ERROR="Fichier de configuration ${SH_FICCFG} absent ou illisible"
86
-    fct_erreur 2
87
-  fi
88
-  if [ ${#THSF_DIR} -eq 0 ]; then
89
-    ERROR="Paramètre manquant ou vide dans le fichier de configuration: THSF_DIR"
90
-    fct_erreur 2
91
-  fi
92
-  if [ ${#THSF_DIR_MODE} -eq 0 ]; then
93
-    ERROR="Paramètre manquant ou vide dans le fichier de configuration: THSF_DIR_MODE"
94
-    fct_erreur 2
95
-  fi
96
-  if [ ${#THSF_HTTPD_USER} -eq 0 ]; then
97
-    ERROR="Paramètre manquant ou vide dans le fichier de configuration: THSF_HTTPD_USER"
98
-    fct_erreur 2
99
-  fi
100
-  if [ ${#THSF_GIT_URL} -eq 0 ]; then
101
-    ERROR="Paramètre manquant ou vide dans le fichier de configuration: THSF_GIT_URL"
102
-    fct_erreur 2
103
-  fi
104
-  if [ ${#THSF_GIT_USER} -eq 0 ]; then
105
-    ERROR="Paramètre manquant ou vide dans le fichier de configuration: THSF_GIT_USER"
106
-    fct_erreur 2
107
-  fi
108
-  fct_message "  * THSF_DIR: ${THSF_DIR}"
109
-  fct_message "  * THSF_DIR_MODE: ${THSF_DIR_MODE}"
110
-  fct_message "  * THSF_GIT_URL: ${THSF_GIT_URL}"
111
-  fct_message "  * THSF_GIT_USER: ${THSF_GIT_USER}"
112
-  fct_message "  * THSF_HTTPD_USER: ${THSF_HTTPD_USER}"
113
-}
114
-
115
-function update_thsf
116
-{
117
-  fct_message "Mise à jour du site du THSF:" -color jaune
118
-  if [ ! -d ${THSF_DIR} ]; then
119
-    ERROR="La copie locale du dépôt n'existe pas: ${THSF_DIR}"
120
-    fct_erreur 2
121
-  fi
122
-  fct_message "Modification provisoire des droits sur ${THSF_DIR}" -color jaune
123
-  sudo chown -R ${THSF_GIT_USER}: ${THSF_DIR}
124
-  RET_VAL=$?
125
-  if [ ! ${RET_VAL} -eq 0 ]; then
126
-    ERROR="Erreur lors du changement des droits"
127
-    fct_erreur 2
128
-  fi
129
-  cd ${THSF_DIR}
130
-  fct_message "Réinitialisation du dépot local" --color jaune
131
-  /usr/bin/git reset --hard
132
-  RET_VAL=$?
133
-  if [ ! ${RET_VAL} -eq 0 ]; then
134
-    ERROR="Erreur lors de la réinitialisation"
135
-    fct_erreur 2
136
-  fi
137
-  fct_message "Mise à jour du dépôt local"
138
-  /usr/bin/git pull origin master
139
-  RET_VAL=$?
140
-  if [ ! ${RET_VAL} -eq 0 ]; then
141
-    ERROR="Erreur lors de la mise à jour"
142
-    fct_erreur 2
143
-  fi
144
-  fct_message "Application des droits sur le dépôt local"
145
-  sudo chown -R ${THSF_HTTPD_USER}: ${THSF_DIR}
146
-  RET_VAL=$?
147
-  if [ ! ${RET_VAL} -eq 0 ]; then
148
-    ERROR="Erreur lors de l'application des droits"
149
-    fct_erreur 2
150
-  fi
151
-  fct_message "Application des permissions sur le dépôt local"
152
-  sudo chmod -R ${THSF_DIR_MODE}  ${THSF_DIR}
153
-  RET_VAL=$?
154
-  if [ ! ${RET_VAL} -eq 0 ]; then
155
-    ERROR="Erreur lors de l'application des permissions "
156
-    fct_erreur 2
157
-  fi
158
-}
159
-
160
-#------------------------------------------------------------------------------------------------------------------
161
-# Traitement
162
-#------------------------------------------------------------------------------------------------------------------
163
-
164
-check_config
165
-update_thsf
166
-fct_erreur 0

+ 0
- 294
bin/expl_transfert_dir.sh View File

@@ -1,294 +0,0 @@
1
-#!/bin/bash
2
-#------------------------------------------------------------------------------------------------------------------
3
-# Script         : expl_transfert_dir.sh
4
-# Auteur         : Doug Le Tough
5
-# Date           : 22-07-2017
6
-# Version        : 1.0.0
7
-# Objet          : Permet le transfert de répertoire entre VM
8
-#
9
-#------------------------------------------------------------------------------------------------------------------
10
-# Mise a jour :
11
-#
12
-# 1.0.0  22/07/2017   - Doug Le Tough   - Cre : Mise en production
13
-#
14
-#------------------------------------------------------------------------------------------------------------------
15
-# Dependances : Aucune
16
-#
17
-#
18
-#------------------------------------------------------------------------------------------------------------------
19
-# Liste des options et arguments:
20
-#
21
-# @OPT: o:src_host:src_host:1/1::::
22
-# @OPT: o:dst_host:dst_host:1/1::::
23
-# @OPT: o:src_dir:src_dir:1/1::::
24
-# @OPT: o:dst_dir:dst_dir:1/1::::
25
-# @OPT: f:create:create:1/1:false:::
26
-# @OPT: f:dst_user:dst_user:1/1:asr:::
27
-# @OPT: f:dst_group:dst_group:1/1:asr:::
28
-# @OPT: f:dst_mode:dst_mode:1/1:755:::
29
-#
30
-#------------------------------------------------------------------------------------------------------------------
31
-# Liste des erreurs:
32
-#
33
-# 2 | erreur | stop | ${ERROR}
34
-#
35
-#------------------------------------------------------------------------------------------------------------------
36
-##
37
-## Syntaxe :
38
-## --------
39
-##
40
-##  prompt> expl_transfert_dir.sh -src_host <VM1> -dst_host <VM2> -src_dir <DIR1> -dst_dir <DIR2> [-create true] [-dst_user <USER>] [-dst_group <GROUP>] [-dst_mode <MODE>] 
41
-##
42
-##  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
43
-##
44
-## Prérequis:
45
-## ----------
46
-## - Le script doit être executé par l'utilisateur asr sur sousetsuken
47
-##
48
-## Fonctionnement:
49
-## ---------------
50
-## Récupère sur sousetsuken depuis src_host le contenu du répertoire src_dir et le copie dans le répertoire
51
-## dst_dir sur dst_host.
52
-##
53
-## Si l'option facultative -create est positionnée à true, le répertoire de destination sera créé.
54
-## Par défaut cette option vaut false.
55
-##
56
-## Si le répertoire de destination n'existe pas et si l'option -create ne vaut pas true, le script remontera
57
-## une erreur.
58
-##
59
-## Si le répertoire de destination existe et l'option -create vaut true, le transfert aura lieu normalement.
60
-##
61
-## Tous les noms de répertoires doivent être des chemins absolus.
62
-##
63
-## Les options -dst_user, -dst_group et -dst_mode permettent de gérer les droits et permissions sur le
64
-## répertoire copié
65
-##
66
-##
67
-## ATTENTION:
68
-## - Le script transfert LE CONTENU du répertoire source
69
-## - Le script modifie les droits et permissions du répertoire de destination, soyez prudent lorsque le répertoire
70
-##   existe déjà.
71
-##
72
-#------------------------------------------------------------------------------------------------------------------
73
-#                     Initialisation de l'environement
74
-#------------------------------------------------------------------------------------------------------------------
75
-
76
-if [ "${USER}" != "asr" ]; then
77
-  ERROR="Seul l'utilisateur asr peut utiliser ce script"
78
-  echo -e "\033[91m${ERROR}\033[0m"
79
-  exit 1
80
-fi
81
-
82
-source /etc/profile.d/tetalab.sh
83
-
84
-if [ ! -f ${NC_EXPL_CFG}/init.conf ]; then
85
-  echo "Le fichier d'initialisation du socle \${NC_EXPL_CFG}/init.conf n'éxiste pas !"
86
-  echo "Arrêt du script par sécurité"
87
-  exit 250
88
-fi
89
-
90
-source ${NC_EXPL_CFG}/init.conf
91
-
92
-#------------------------------------------------------------------------------------------------------------------
93
-#  Fonctions
94
-#------------------------------------------------------------------------------------------------------------------
95
-
96
-function check_hosts
97
-{
98
-  for HOST in ${src_host} ${dst_host}
99
-  do
100
-    if [ $(host ${HOST} | grep "Host ${HOST} not found: 3(NXDOMAIN)" | wc -l) -eq 1 ]; then
101
-      ERROR="${HOST} n'est pas un nom d'hôte valide"
102
-      fct_erreur 2
103
-    fi
104
-  done
105
-}
106
-
107
-function check_dirs
108
-{
109
-  fct_message "Vérification du répertoire source ${src_dir} sur ${src_host}" -color jaune
110
-  ssh ${src_host} "sudo find ${ROOT_SRC_DIR} -maxdepth 1 -type d -name ${BASE_SRC_DIR} >/dev/null 2>&1"
111
-  RET_VAL=$?
112
-  if [ ! ${RET_VAL} -eq 0 ]; then
113
-    ERROR="Le répertoire ${src_host}:${src_dir} n'existe pas"
114
-    fct_erreur 2
115
-  fi
116
-  if [ $(ssh ${src_host} "sudo find ${ROOT_SRC_DIR} -maxdepth 1 -type d -name ${BASE_SRC_DIR}" | wc -l) -eq 0 ]; then
117
-    ERROR="Le répertoire ${src_host}:${src_dir} n'existe pas"
118
-    fct_erreur 2
119
-  fi
120
-  if [ "${create}" != "true" ]; then
121
-    fct_message "Vérification du répertoire destination ${dst_dir} sur ${dst_host}" -color jaune
122
-    ssh ${dst_host} "sudo find ${ROOT_DST_DIR} -maxdepth 1 -type d -name ${BASE_DST_DIR} >/dev/null 2>&1"
123
-    RET_VAL=$?
124
-    if [ ! ${RET_VAL} -eq 0 ]; then
125
-      ERROR="Le répertoire ${dst_host}:${dst_dir} n'existe pas"
126
-      fct_erreur 2
127
-    fi
128
-    if [ $(ssh ${dst_host} "sudo find ${ROOT_DST_DIR} -maxdepth 1 -type d -name ${BASE_DST_DIR} | wc -l") -eq 0 ]; then
129
-      ERROR="Le répertoire ${dst_host}:${dst_dir} n'existe pas"
130
-      fct_erreur 2
131
-    fi
132
-  fi
133
-}
134
-
135
-function check_user
136
-{
137
-  if [ ! $(ssh ${dst_host} "sudo cat /etc/passwd | grep -E "^${dst_user}\:" | wc -l") -eq 1 ]; then
138
-    ERROR="L'utilisateur ${dst_user} n'existe pas sur ${dst_host}"
139
-    fct_erreur 2
140
-  fi
141
-}
142
-
143
-function check_group
144
-{
145
-  if [ ! $(ssh ${dst_host} "sudo cat /etc/group | grep -E "^${dst_group}\:" | wc -l") -eq 1 ]; then
146
-    ERROR="Le groupe ${dst_group} n'existe pas sur ${dst_host}"
147
-    fct_erreur 2
148
-  fi
149
-}
150
-
151
-function create_dst_dir
152
-{
153
-  fct_message "Création du répertoire de destination ${dst_host}:${dst_dir}" -color jaune
154
-  ssh ${dst_host} "sudo mkdir -p ${dst_dir}"
155
-  RET_VAL=$?
156
-  if [ ! ${RET_VAL} -eq 0 ]; then
157
-    ERROR="Erreur lors de la création du répertoire de destination"
158
-    fct_erreur 2
159
-  fi
160
-}
161
-
162
-function get_src_archive
163
-{
164
-  fct_message "Création de l'archive /tmp/${ARCHIVE_NAME} du répertoire du répertoire ${src_host}:${src_dir}" -color jaune
165
-  ssh ${src_host} "sudo tar -C ${src_dir} -czf /tmp/${ARCHIVE_NAME} ./"
166
-  RET_VAL=$?
167
-  if [ ! ${RET_VAL} -eq 0 ]; then
168
-    ERROR="Erreur lors de la création de l'archive du répertoire source (1)"
169
-    fct_message ${ERROR} -color rouge
170
-    fct_erreur 3
171
-    fct_erreur 1
172
-  fi
173
-  ssh ${src_host} "sudo chown asr: /tmp/${ARCHIVE_NAME}"
174
-  RET_VAL=$?
175
-  if [ ! ${RET_VAL} -eq 0 ]; then
176
-    ERROR="Erreur lors de la création de l'archive du répertoire source (2)"
177
-    fct_message ${ERROR} -color rouge
178
-    fct_erreur 3
179
-    fct_erreur 1
180
-  fi
181
-  fct_message "Récupération de l'archive /tmp/${ARCHIVE_NAME} depuis ${src_host}" -color jaune
182
-  scp -q ${src_host}:/tmp/${ARCHIVE_NAME} /tmp
183
-  RET_VAL=$?
184
-  if [ ! ${RET_VAL} -eq 0 ]; then
185
-    ERROR="Erreur lors de la récupération de l'archive du répertoire source"
186
-    fct_message ${ERROR} -color rouge
187
-    fct_erreur 3
188
-    fct_erreur 1
189
-  fi
190
-}
191
-
192
-function cp_archive
193
-{
194
-  fct_message "Copie de l'archive locale /tmp/${ARCHIVE_NAME} vers ${dst_host}:/tmp/${ARCHIVE_NAME}" -color jaune
195
-  scp -q /tmp/${ARCHIVE_NAME} ${dst_host}:/tmp/${ARCHIVE_NAME}
196
-  RET_VAL=$?
197
-  if [ ! ${RET_VAL} -eq 0 ]; then
198
-    ERROR="Erreur lors de la copie de l'archive"
199
-    fct_message ${ERROR} -color rouge
200
-    fct_erreur 3
201
-    fct_erreur 1
202
-  fi
203
-}
204
-
205
-function untar_archive
206
-{
207
-  fct_message "Décompression de l'archive /tmp/${ARCHIVE_NAME} vers ${dst_host}:${dst_dir}" -color jaune
208
-  ssh ${dst_host} "sudo tar -C ${dst_dir} -xzf /tmp/${ARCHIVE_NAME}"
209
-  if [ ! ${RET_VAL} -eq 0 ]; then
210
-    ERROR="Erreur lors de la décompression de l'archive"
211
-    fct_message ${ERROR} -color rouge
212
-    fct_erreur 3
213
-    fct_erreur 1
214
-  fi  
215
-}
216
-
217
-function set_rights
218
-{
219
-  fct_message "Application des droits ${dst_user}:${dst_group} sur ${dst_host}:${dst_dir}" -color jaune
220
-  ssh  ${dst_host} "sudo chown -R ${dst_user}:${dst_group} ${dst_dir}"
221
-  if [ ! ${RET_VAL} -eq 0 ]; then
222
-    ERROR="Erreur lors de l'application des droits"
223
-    fct_message ${ERROR} -color rouge
224
-    fct_erreur 3
225
-    fct_erreur 1
226
-  fi 
227
-}
228
-
229
-function set_permissions
230
-{
231
-  fct_message "Application des permission ${dst_mode} sur ${dst_host}:${dst_dir}" -color jaune
232
-  ssh  ${dst_host} "sudo chmod -R ${dst_mode} ${dst_dir}"
233
-  if [ ! ${RET_VAL} -eq 0 ]; then
234
-    ERROR="Erreur lors de l'application des permissions"
235
-    fct_message ${ERROR} -color rouge
236
-    fct_erreur 3
237
-    fct_erreur 1
238
-  fi 
239
-}
240
-
241
-function rm_archives
242
-{
243
-  fct_message "Suppression de l'archive /tmp/${ARCHIVE_NAME} sur ${src_host}" -color jaune
244
-  ssh ${src_host} "sudo rm -Rf /tmp/${ARCHIVE_NAME}"
245
-  RET_VAL=$?
246
-  if [ ! ${RET_VAL} -eq 0 ]; then
247
-    ERROR="Erreur lors de la suppression de l'archive"
248
-    fct_erreur 2
249
-  fi
250
-  fct_message "Suppression de l'archive locale /tmp/${ARCHIVE_NAME}" -color jaune
251
-  sudo rm -Rf /tmp/${ARCHIVE_NAME}
252
-  RET_VAL=$?
253
-  if [ ! ${RET_VAL} -eq 0 ]; then
254
-    ERROR="Erreur lors de la suppression de l'archive"
255
-    fct_erreur 2
256
-  fi
257
-  fct_message "Suppression de l'archive /tmp/${ARCHIVE_NAME} sur ${dst_host}" -color jaune
258
-  ssh ${dst_host} "sudo rm -Rf /tmp/${ARCHIVE_NAME}"
259
-  RET_VAL=$?
260
-  if [ ! ${RET_VAL} -eq 0 ]; then
261
-    ERROR="Erreur lors de la suppression de l'archive"
262
-    fct_erreur 2
263
-  fi
264
-}
265
-
266
-
267
-#------------------------------------------------------------------------------------------------------------------
268
-# Traitement
269
-#------------------------------------------------------------------------------------------------------------------
270
-
271
-ROOT_SRC_DIR=$(dirname ${src_dir})
272
-BASE_SRC_DIR=$(basename ${src_dir})
273
-ROOT_DST_DIR=$(dirname ${dst_dir})
274
-BASE_DST_DIR=$(basename ${dst_dir})
275
-# Génère une chaine aléatoire
276
-RND=$(dd if=/dev/urandom bs=3 count=40 2>/dev/null | md5sum | cut -d' ' -f1)
277
-# Le nom de l'archive contenant les documents à récupérer
278
-ARCHIVE_NAME=${RND}.tgz
279
-
280
-check_hosts
281
-check_dirs
282
-check_user
283
-check_group
284
-if [ "${create}" == "true" ]; then
285
-  create_dst_dir
286
-fi
287
-get_src_archive
288
-cp_archive
289
-untar_archive
290
-set_rights
291
-set_permissions
292
-rm_archives
293
-
294
-fct_erreur 0

+ 0
- 309
bin/sys_create_vhost.sh View File

@@ -1,309 +0,0 @@
1
-#!/bin/bash
2
-#------------------------------------------------------------------------------------------------------------------
3
-# Script         : sys_create_vhost.sh
4
-# Auteur         : Doug Le Tough
5
-# Date           : 22-07-2017
6
-# Version        : 1.0.0
7
-# Objet          : Création d'un VHOST sur le rproxy et sur l'hôte du backend. le rproxy comme le backend
8
-#                  sont considérés être des serveurs Apache. Ce script ajoute également le domaine passé
9
-#                  en argument de la liste des domaines gérés par Dehydrated.
10
-#
11
-#------------------------------------------------------------------------------------------------------------------
12
-# Mise a jour :
13
-#
14
-# 1.0.0  22/07/2017   - Doug Le Tough   - Cre : Mise en production
15
-# 1.1.0  26/07/2017   - Doug Le Tough   - Evo : Ajout vérification de la configuration
16
-#                                               Ajout création du répertoire du backend
17
-#
18
-#------------------------------------------------------------------------------------------------------------------
19
-# Dependances : Aucune
20
-#
21
-#
22
-#------------------------------------------------------------------------------------------------------------------
23
-# Liste des options et arguments:
24
-#
25
-# @OPT: o:domain:domain:1/1::::
26
-# @OPT: o:backend_host:backend_host:1/1::::
27
-# @OPT: o:backend_port:backend_port:1/1::::
28
-#
29
-#------------------------------------------------------------------------------------------------------------------
30
-# Liste des erreurs:
31
-#
32
-# 2 | erreur | stop | ${ERROR}
33
-#
34
-#------------------------------------------------------------------------------------------------------------------
35
-# Liste des paramètres de configuration définis dans le fichier de configuration du script:
36
-#
37
-# RPROXY_VHOST_TEMPLATE=rproxy_template.conf
38
-# REMOTE_VHOST_TEMPLATE=backend_template.conf
39
-# DEHYDRATED_DOMAIN_LIST=/etc/dehydrated/domains.txt
40
-# HTTPD_PATH=/etc/httpd/sites-available
41
-# WWW_ROOT_DIR=/var/www
42
-#
43
-#------------------------------------------------------------------------------------------------------------------
44
-##
45
-## Syntaxe :
46
-## --------
47
-##
48
-##  prompt> sys_create_vhost.sh -domain <DOMAIN.TLD> [-backend_host <BACKEND_HOST>] -backend_port <BACKEND_PORT>
49
-##
50
-##  ex: sys_create_vhost.sh -domain pad.tetalab.org -backend_host jimmy.local.tetalab.org -backend_port 9001
51
-##
52
-## Prérequis:
53
-## ----------
54
-## - Le script doit être executé par l'utilisateur asr sur le rproxy (sousetsuken)
55
-##
56
-## Fonctionnement:
57
-## ---------------
58
-## Crée le fichier de configuration sur le rproxy à partir du fichiers modèle local_site_template.conf
59
-## ainsi que le fichier de configuration sur l'hôte du backend à partir du fichier modèle remote_site_template.conf.
60
-##
61
-## Les deux fichiers modèles sont situés dans le répertoire NC_EXPL_MOD.
62
-##
63
-## Remarque importante: Ce script n'active *PAS* le virtualhost et ne redémarre *PAS* les serveurs Apache.
64
-##
65
-#------------------------------------------------------------------------------------------------------------------
66
-#                     Initialisation de l'environement
67
-#------------------------------------------------------------------------------------------------------------------
68
-
69
-if [ "${USER}" != "asr" ]; then
70
-  ERROR="Seul l'utilisateur asr peut utiliser ce script"
71
-  echo -e "\033[91m${ERROR}\033[0m"
72
-  exit 1
73
-fi
74
-
75
-source /etc/profile.d/tetalab.sh
76
-
77
-if [ ! -f ${NC_EXPL_CFG}/init.conf ]; then
78
-  echo "Le fichier d'initialisation du socle \${NC_EXPL_CFG}/init.conf n'éxiste pas !"
79
-  echo "Arrêt du script par sécurité"
80
-  exit 250
81
-fi
82
-
83
-source ${NC_EXPL_CFG}/init.conf
84
-
85
-IP_ADDR=$(host ${backend_host} | rev | cut -d' ' -f1 | rev)
86
-IS_PRESENT=$(grep -E ^${domain}$ ${DEHYDRATED_DOMAIN_LIST} | wc -l)
87
-REMOTE_HTTP_PATH=${backend_host}:${HTTPD_PATH}
88
-REPLACE_DOMAIN="s/SITE_NAME/${domain}/g"
89
-REPLACE_HOST="s/SITE_HOST/${backend_host}/g"
90
-REPLACE_IP_ADDR="s/SITE_IP/${IP_ADDR}/g"
91
-REPLACE_SITE_PORT="s/SITE_PORT/${backend_port}/"
92
-
93
-#------------------------------------------------------------------------------------------------------------------
94
-#  Fonctions
95
-#------------------------------------------------------------------------------------------------------------------
96
-
97
-function check_config
98
-{
99
-  fct_message "Vérification de la configuration:" -color jaune
100
-  if [ ! -r ${SH_FICCFG} ]; then
101
-    ERROR="Fichier de configuration ${SH_FICCFG} absent ou illisible"
102
-    fct_erreur 2
103
-  fi
104
-  if [ ${#RPROXY_VHOST_TEMPLATE} -eq 0 ]; then
105
-    ERROR="Paramètre manquant ou vide dans le fichier de configuration: RPROXY_VHOST_TEMPLATE"
106
-    fct_erreur 2
107
-  fi
108
-  if [ ${#REMOTE_VHOST_TEMPLATE} -eq 0 ]; then
109
-    ERROR="Paramètre manquant ou vide dans le fichier de configuration: REMOTE_VHOST_TEMPLATE"
110
-    fct_erreur 2
111
-  fi
112
-  if [ ${#DEHYDRATED_DOMAIN_LIST} -eq 0 ]; then
113
-    ERROR="Paramètre manquant ou vide dans le fichier de configuration: DEHYDRATED_DOMAIN_LIST"
114
-    fct_erreur 2
115
-  fi
116
-  if [ ${#HTTPD_PATH} -eq 0 ]; then
117
-    ERROR="Paramètre manquant ou vide dans le fichier de configuration: HTTPD_PATH"
118
-    fct_erreur 2
119
-  fi
120
-  if [ ${#WWW_ROOT_DIR} -eq 0 ]; then
121
-    ERROR="Paramètre manquant ou vide dans le fichier de configuration: WWW_ROOT_DIR"
122
-    fct_erreur 2
123
-  fi
124
-  fct_message "  * RPROXY_VHOST_TEMPLATE: ${RPROXY_VHOST_TEMPLATE}"
125
-  fct_message "  * REMOTE_VHOST_TEMPLATE: ${REMOTE_VHOST_TEMPLATE}"
126
-  fct_message "  * DEHYDRATED_DOMAIN_LIST: ${DEHYDRATED_DOMAIN_LIST}"
127
-  fct_message "  * HTTPD_PATH: ${HTTPD_PATH}"
128
-  fct_message "  * WWW_ROOT_DIR: ${WWW_ROOT_DIR}"
129
-  fct_message "  * Domain: ${domain}"
130
-  fct_message "  * Backend host: ${backend_host}"
131
-  fct_message "  * Backend port: ${backend_port}"
132
-}
133
-
134
-function check_port
135
-{
136
-  if [ ! ${backend_port} -gt 0 ] 2>/dev/null || [ ! ${backend_port} -lt 65535 ] 2>/dev/null; then
137
-    ERROR="Le numéro de port doit être compris entre 0 et 65535"
138
-    fct_erreur 2
139
-  fi
140
-}
141
-
142
-function check_templates
143
-{
144
-  fct_message "Vérification de la présence du fichier modèle ${NC_EXPL_MOD}/${RPROXY_VHOST_TEMPLATE}" -color jaune
145
-  if [ ! -r ${NC_EXPL_MOD}/${RPROXY_VHOST_TEMPLATE} ]; then
146
-  ERROR="${NC_EXPL_MOD}/${RPROXY_VHOST_TEMPLATE} n'existe pas ou n'est pas lisible"
147
-  fct_erreur 2
148
-  fi
149
-  fct_message "Vérification de la présence du fichier modèle ${NC_EXPL_MOD}/${REMOTE_VHOST_TEMPLATE}" -color jaune
150
-  if [ ! -r ${NC_EXPL_MOD}/${REMOTE_VHOST_TEMPLATE} ]; then
151
-    ERROR="${NC_EXPL_MOD}/${REMOTE_VHOST_TEMPLATE} n'existe pas ou n'est pas lisible"
152
-    fct_erreur 2
153
-  fi
154
-}
155
-
156
-
157
-function create_rproxy_conf
158
-{
159
-  fct_message "Création de la configuration du rproxy:" -color jaune
160
-  fct_message "  * Domaine: ${domain}"
161
-  fct_message "  * Hôte : ${backend_host}"
162
-  fct_message "  * Port: ${backend_port}"
163
-  sed -s ${REPLACE_DOMAIN} ${NC_EXPL_MOD}/${RPROXY_VHOST_TEMPLATE} > ${NC_EXPL_TMP}/${domain}.conf_${SH_SESSION_ID}.tmp
164
-  RET_VAL=$?
165
-  if [ ! ${RET_VAL} -eq 0 ]; then
166
-    ERROR="Erreur lors de la création de la configuration du rproxy (1)"
167
-    fct_erreur 2
168
-  fi
169
-  sed -i ${REPLACE_HOST} ${NC_EXPL_TMP}/${domain}.conf_${SH_SESSION_ID}.tmp
170
-  RET_VAL=$?
171
-  if [ ! ${RET_VAL} -eq 0 ]; then
172
-    ERROR="Erreur lors de la création de la configuration du rproxy (2)"
173
-    fct_erreur 2
174
-  fi
175
-  sed -i ${REPLACE_SITE_PORT} ${NC_EXPL_TMP}/${domain}.conf_${SH_SESSION_ID}.tmp
176
-  RET_VAL=$?
177
-  if [ ! ${RET_VAL} -eq 0 ]; then
178
-    ERROR="Erreur lors de la création de la configuration du rproxy (3)"
179
-    fct_erreur 2
180
-  fi
181
-  fct_message "Installation de la configuration du rproxy vers ${HTTPD_PATH}/${domain}.conf" -color jaune
182
-  sudo cp ${NC_EXPL_TMP}/${domain}.conf_${SH_SESSION_ID}.tmp ${HTTPD_PATH}/${domain}.conf
183
-  RET_VAL=$?
184
-  if [ ! ${RET_VAL} -eq 0 ]; then
185
-    ERROR="Erreur lors de l'installation de la configuration du rproxy"
186
-    fct_erreur 2
187
-  fi
188
-  fct_message "Application des droits sur ${HTTPD_PATH}/${domain}.conf" -color jaune
189
-  sudo chown root: ${HTTPD_PATH}/${domain}.conf
190
-  RET_VAL=$?
191
-  if [ ! ${RET_VAL} -eq 0 ]; then
192
-    ERROR="Erreur lors de l'application des droits."
193
-    fct_erreur 2
194
-  fi
195
-  fct_message "Application des permissions sur ${HTTPD_PATH}/${domain}.conf" -color jaune
196
-  sudo chmod 644 ${HTTPD_PATH}/${domain}.conf
197
-  RET_VAL=$?
198
-  if [ ! ${RET_VAL} -eq 0 ]; then
199
-    ERROR="Erreur lors de l'application des permissions"
200
-    fct_erreur 2
201
-  fi
202
-}
203
-
204
-function create_backend_conf
205
-{
206
-  fct_message "Création de la configuration du backend:" -color jaune
207
-  fct_message "  * Domaine: ${domain}"
208
-  fct_message "  * Addresse IP du backend: ${IP_ADDR}"
209
-  fct_message "  * Port: ${backend_port}"
210
-  sed -s ${REPLACE_DOMAIN} ${NC_EXPL_MOD}/${REMOTE_VHOST_TEMPLATE} > ${NC_EXPL_TMP}/${domain}.conf_${SH_SESSION_ID}.tmp
211
-  RET_VAL=$?
212
-  if [ ! ${RET_VAL} -eq 0 ]; then
213
-    ERROR="Erreur lors de la création de la configuration du backend (1)"
214
-    fct_erreur 2
215
-  fi
216
-  sed -i ${REPLACE_IP_ADDR} ${NC_EXPL_TMP}/${domain}.conf_${SH_SESSION_ID}.tmp
217
-  RET_VAL=$?
218
-  if [ ! ${RET_VAL} -eq 0 ]; then
219
-    ERROR="Erreur lors de la création de la configuration du backend (2)"
220
-    fct_erreur 2
221
-  fi
222
-  sed -i ${REPLACE_SITE_PORT} ${NC_EXPL_TMP}/${domain}.conf_${SH_SESSION_ID}.tmp
223
-  RET_VAL=$?
224
-  if [ ! ${RET_VAL} -eq 0 ]; then
225
-    ERROR="Erreur lors de la création de la configuration du backend (3)"
226
-    fct_erreur 2
227
-  fi
228
-  fct_message "Installation de la configuration du backend sur ${backend_host}" -color jaune
229
-  scp -q ${NC_EXPL_TMP}/${domain}.conf_${SH_SESSION_ID}.tmp ${backend_host}:/tmp/${domain}.conf
230
-  RET_VAL=$?
231
-  if [ ! ${RET_VAL} -eq 0 ]; then
232
-    ERROR="Erreur lors de l'installation de la configuration du backend (1)"
233
-    fct_erreur 2
234
-  fi
235
-  ssh ${backend_host} "sudo mv /tmp/${domain}.conf ${HTTPD_PATH}/${domain}.conf"
236
-  RET_VAL=$?
237
-  if [ ! ${RET_VAL} -eq 0 ]; then
238
-    ERROR="Erreur lors de l'installation de la configuration du backend (2)"
239
-    fct_erreur 2
240
-  fi
241
-  fct_message "Application des droits sur le fichier de configuration du backend"
242
-  ssh ${backend_host} "sudo chown root: ${HTTPD_PATH}/${domain}.conf"
243
-  RET_VAL=$?
244
-  if [ ! ${RET_VAL} -eq 0 ]; then
245
-    ERROR="Erreur lors de l'application des droits sur la configuration du backend"
246
-    fct_erreur 2
247
-  fi
248
-  fct_message "Application des permissions sur le fichier de configuration du backend"
249
-  ssh ${backend_host} "sudo chmod 644 ${HTTPD_PATH}/${domain}.conf"
250
-  RET_VAL=$?
251
-  if [ ! ${RET_VAL} -eq 0 ]; then
252
-    ERROR="Erreur lors de l'application des permissions sur la configuration du backend"
253
-    fct_erreur 2
254
-  fi
255
-}
256
-
257
-function create_backend_document_root
258
-{
259
-  fct_message "Création du répertoire d'accueil du backend sur ${backend_host}" -color jaune
260
-  ssh ${backend_host} "sudo mkdir -p ${WWW_ROOT_DIR}/${domain}"
261
-  RET_VAL=$?
262
-  if [ ! ${RET_VAL} -eq 0 ]; then
263
-    ERROR="Erreur lors de la création du répertoire d'accueil du backend"
264
-    fct_erreur 2
265
-  fi
266
-  fct_message "Application des droits sur le répertoire d'accueil du backend" -color jaune
267
-  ssh ${backend_host} "sudo chown -R apache:apache ${WWW_ROOT_DIR}/${domain}"
268
-  if [ ! ${RET_VAL} -eq 0 ]; then
269
-    ERROR="Erreur lors de de l'application des droits sur le répertoire d'accueil du backend"
270
-    fct_erreur 2
271
-  fi
272
-  fct_message "Application des permissions sur le répertoire d'accueil du backend" -color jaune
273
-  ssh ${backend_host} "sudo chmod -R 775 ${WWW_ROOT_DIR}/${domain}"
274
-  if [ ! ${RET_VAL} -eq 0 ]; then
275
-    ERROR="Erreur lors de de l'application des droits sur le répertoire d'accueil du backend"
276
-    fct_erreur 2
277
-  fi
278
-}
279
-
280
-function add_domain
281
-{
282
-  if [ ${IS_PRESENT} -eq 0 ]; then
283
-    fct_message "Ajout du domaine ${domain} aux domaines dont les certificats sont gérés par dehydrated" -color jaune
284
-    sudo echo ${domain} >> ${DEHYDRATED_DOMAIN_LIST}
285
-    RET_VAL=$?
286
-    if [ ! ${RET_VAL} -eq 0 ]; then
287
-      ERROR="Erreur lors de l'ajout du domaine dans  ${DEHYDRATED_DOMAIN_LIST}"
288
-      fct_erreur 2
289
-    fi
290
-  else
291
-    fct_message "${domain} fait déjà partie de la liste des domaines gérés par dehydrated" -color jaune
292
-  fi
293
-}
294
-
295
-#------------------------------------------------------------------------------------------------------------------
296
-# Traitement
297
-#------------------------------------------------------------------------------------------------------------------
298
-
299
-check_config
300
-check_port
301
-check_templates
302
-create_rproxy_conf
303
-if [ "${#backend_host}" -gt 0 ]; then
304
-  create_backend_conf
305
-fi
306
-create_backend_document_root
307
-add_domain
308
-
309
-fct_erreur 0

+ 0
- 120
bin/sys_deploy_socle.sh View File

@@ -1,120 +0,0 @@
1
-#!/bin/bash
2
-#------------------------------------------------------------------------------------------------------------------
3
-# Script         : sys_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 en option
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> sys_deploy_socle.sh -vm <VM> -socle_dir <DIR>
37
-##
38
-## Prérequis:
39
-## ----------
40
-## - Le script doit être executé par l'utilisateur asr
41
-##
42
-## Fonctionnement:
43
-## ---------------
44
-## Installe le socle Bash à partir du répertoire passée en paramètre (socle_dir) sur la VM
45
-## dont le nom est recu en paramètre.
46
-## 
47
-#------------------------------------------------------------------------------------------------------------------
48
-#                     Initialisation de l'environement
49
-#------------------------------------------------------------------------------------------------------------------
50
-
51
-if [ "${USER}" != "asr" ]; then
52
-  ERROR="Seul l'utilisateur asr peut utiliser ce script"
53
-  echo -e "\033[91m${ERROR}\033[0m"
54
-  exit 1
55
-fi
56
-
57
-source /etc/profile.d/tetalab.sh
58
-
59
-if [ ! -f ${NC_EXPL_CFG}/init.conf ]; then
60
-  echo "Le fichier d'initialisation du socle \${NC_EXPL_CFG}/init.conf n'éxiste pas !"
61
-  echo "Arrêt du script par sécurité"
62
-  exit 250
63
-fi
64
-
65
-source ${NC_EXPL_CFG}/init.conf
66
-
67
-#------------------------------------------------------------------------------------------------------------------
68
-#  Fonctions
69
-#------------------------------------------------------------------------------------------------------------------
70
-
71
-function check_socle_dir
72
-{
73
-  if [ ! -d ${socle_dir} ]; then
74
-    ERROR="Erreur le répertoire ${socle_dir} n'existe pas"
75
-    fct_erreur 2
76
-  fi
77
-}
78
-
79
-function rm_socle_dir
80
-{
81
-  fct_message "Suppression du socle dans ${socle_dir} sur ${vm}:" -color rose
82
-  ssh ${vm} rm -Rf ${socle_dir}
83
-  RET_VAL=$?
84
-  if [ ! ${RET_VAL} -eq 0 ]; then
85
-    ERROR="Erreur lors de la suppression du socle sur ${vm}."
86
-    fct_erreur 2
87
-  fi
88
-}
89
-
90
-function scp_socle_dir
91
-{
92
-  fct_message "Copie du socle dans ${socle_dir} sur ${vm}:" -color rose
93
-  scp -q -r ${socle_dir} ${vm}:${socle_dir}
94
-  RET_VAL=$?
95
-  if [ ! ${RET_VAL} -eq 0 ]; then
96
-    ERROR="Erreur lors de la copie du socle."
97
-    fct_erreur 2
98
-  fi
99
-}
100
-
101
-function install_socle
102
-{
103
-  fct_message "Installation du socle sur ${vm}:" -color rose
104
-  ssh ${vm} "cd ${socle_dir} && sudo ./install.sh"
105
-  RET_VAL=$?
106
-  if [ ! ${RET_VAL} -eq 0 ]; then
107
-    ERROR="Erreur lors de l'installation du socle."
108
-    fct_erreur 2
109
-  fi
110
-}
111
-
112
-#------------------------------------------------------------------------------------------------------------------
113
-# Traitement
114
-#------------------------------------------------------------------------------------------------------------------
115
-
116
-check_socle_dir
117
-rm_socle_dir
118
-scp_socle_dir
119
-install_socle
120
-fct_erreur 0

+ 0
- 227
bin/sys_refresh_ref_cron.sh View File

@@ -1,227 +0,0 @@
1
-#!/bin/bash
2
-#------------------------------------------------------------------------------------------------------------------
3
-# Script         : sys_refresh_ref_cron.sh
4
-# Auteur         : Doug Le Tough
5
-# Date           : 24-07-2017
6
-# Version        : 1.0.0
7
-# Objet          : Met à jour le référentiel des jobs cron de l'ensemble de l'infra
8
-#                  accessible par https://ref.tetalab.org
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
-# Ce script n'accepte *aucune* option
24
-#
25
-# @OPT: f:force:force:1/1:false:show_only::
26
-# @OPT: f:show_only:show_only:1/1:false:force::
27
-#
28
-#------------------------------------------------------------------------------------------------------------------
29
-# Liste des erreurs:
30
-#
31
-# 2 | erreur | stop | ${ERROR}
32
-#
33
-#------------------------------------------------------------------------------------------------------------------
34
-# Liste des paramètres de configuration:
35
-#
36
-# PGPASSFILE=/home/asr/.pgpass
37
-# DB_TABLE=ref_cron
38
-# TETALAB_USERS[0]=root
39
-# TETALAB_USERS[1]=asr
40
-# TETALAB_VM[0]=sousetsuken.local.tetalab.org
41
-# TETALAB_VM[1]=jimmy.local.tetalab.org
42
-# TETALAB_VM[2]=billy.local.tetalab.org
43
-# TETALAB_VM[3]=marian.local.tetalab.org
44
-# TETALAB_VM[4]=sonny.local.tetalab.org
45
-# TETALAB_VM[5]=web.local.tetalab.org
46
-#
47
-##------------------------------------------------------------------------------------------------------------------
48
-##
49
-## Syntaxe :
50
-## --------
51
-##
52
-##  prompt> sys_refresh_ref_cron.sh [-force true] [-show_only true]
53
-##
54
-## Prérequis:
55
-## ----------
56
-## - Le script doit être executé par l'utilisateur asr
57
-##
58
-## Fonctionnement:
59
-## ---------------
60
-## Récupère l'ensemble des cronjobs des utilisateurs listés dans TETALAB_USERS
61
-## mis en place sur les VM définies dans TETALAB_VM et les enregistre dans la table
62
-## DB_TABLE de la base de données "referentiel".
63
-##
64
-## À moins que l'option -force soit passée à true, le script ne fait qu'ajouter les nouvelles
65
-## entrées dans la base. Par défaut cette option est positionnée à false, de ce fait
66
-## aucune données n'est supprimée dans la base y compris si le cronjob n'existe plus sur le
67
-## système concernée.
68
-##
69
-## Lorsqu'un cron job est supprimé, forcer une régénération complète des entrées de la base est
70
-## donc nécessaire (sys_refresh_ref_cron.sh -force true)
71
-##
72
-## L'option -show_only positionnée à true permet de lister les cronjobs installés sur les VM sans
73
-## les enregistrer dans la base de données.
74
-##
75
-## Les informations de connexion à la base de données doivent être stockées dans
76
-## le fichier PGPASSFILE sur sousetsuken au format suivant:
77
-##
78
-## hostname:port:database:username:password
79
-## 
80
-## https://www.postgresql.org/docs/9.6/static/libpq-pgpass.html
81
-##
82
-##
83
-#------------------------------------------------------------------------------------------------------------------
84
-#                     Initialisation de l'environement
85
-#------------------------------------------------------------------------------------------------------------------
86
-
87
-if [ "${USER}" != "asr" ]; then
88
-  ERROR="Seul l'utilisateur asr peut utiliser ce script"
89
-  echo -e "\033[91m${ERROR}\033[0m"
90
-  exit 1
91
-fi
92
-
93
-source /etc/profile.d/tetalab.sh
94
-
95
-if [ ! -f ${NC_EXPL_CFG}/init.conf ]; then
96
-  echo "Le fichier d'initialisation du socle \${NC_EXPL_CFG}/init.conf n'éxiste pas !"
97
-  echo "Arrêt du script par sécurité"
98
-  exit 250
99
-fi
100
-
101
-source ${NC_EXPL_CFG}/init.conf
102
-
103
-#------------------------------------------------------------------------------------------------------------------
104
-#  Fonctions
105
-#------------------------------------------------------------------------------------------------------------------
106
-
107
-function check_config
108
-{
109
-  fct_message "Vérification de la configuration:" -color jaune
110
-  if [ ! -r ${SH_FICCFG} ]; then
111
-    ERROR="Fichier de configuration ${SH_FICCFG} absent ou illisible"
112
-    fct_erreur 2
113
-  fi
114
-  if [ ! -r ${PGPASSFILE} ]; then
115
-    ERROR="Fichier des informations de connexion ${PGPASSFILE} absent ou illisible"
116
-    fct_erreur 2
117
-  fi
118
-  fct_message "  * PGPASSFILE: ${PGPASSFILE}"
119
-  if [ ${#DB_TABLE} -eq 0 ]; then
120
-    ERROR="Paramètre manquant ou vide dans le fichier de configuration: DB_TABLE"
121
-    fct_erreur 2
122
-  fi
123
-  fct_message "  * DB_TABLE: ${DB_TABLE}"
124
-  fct_message "  * Force: ${force}"
125
-  fct_message "  * Show only: ${show_only}"
126
-  if [ ${#TETALAB_USERS[*]} -eq 0 ]; then
127
-    ERROR="Aucune VM définie dans le fichier de configuration"
128
-    fct_erreur 2
129
-  fi
130
-  INDEX=0
131
-  for TETALAB_USER in ${TETALAB_USERS[@]}
132
-  do
133
-    fct_message "  * TETALAB_USERS[${INDEX}]: ${TETALAB_USER}"
134
-    INDEX=$(( INDEX+1 ))
135
-  done
136
-  if [ ${#TETALAB_VM[*]} -eq 0 ]; then
137
-    ERROR="Aucune VM définie dans le fichier de configuration"
138
-    fct_erreur 2
139
-  fi
140
-  INDEX=0
141
-  for VM in ${TETALAB_VM[@]}
142
-  do
143
-    fct_message "  * VM[${INDEX}]: ${VM}"
144
-    INDEX=$(( INDEX+1 ))
145
-  done
146
-}
147
-
148
-function get_db_info
149
-{
150
-  DB_HOST=$(cat ${PGPASSFILE} | cut -d: -f1)
151
-  DB_DATABASE=$(cat ${PGPASSFILE} | cut -d: -f3)
152
-  DB_USER=$(cat ${PGPASSFILE} | cut -d: -f4)
153
-}
154
-
155
-function clean_table
156
-{
157
-  if [ "${force}" == "true" ]; then
158
-    fct_message "Option -force activée: Suppression des données dans la table." -color orange
159
-    SQL="delete from ref_cron where id > 0;"
160
-    psql -q -t -h ${DB_HOST} -U ${DB_USER} -d ${DB_DATABASE} -c "${SQL}"
161
-  fi
162
-}
163
-
164
-function refresh_cronjobs
165
-{
166
-  fct_message "Récupération des cronjobs:" -color jaune
167
-  for VM in ${TETALAB_VM[@]}
168
-  do
169
-    fct_message "  * ${VM}" -color rose
170
-    for TETALAB_USER in ${TETALAB_USERS[@]}
171
-    do
172
-      fct_message "    * ${TETALAB_USER}" -color orange
173
-      IFS_BAK=${IFS}
174
-      IFS=$'\n'
175
-      CRONJOBS=$(ssh ${VM} "sudo crontab -u ${TETALAB_USER} -l 2>/dev/null | grep -v '^\#' | grep -v '^$' | grep -vP '^ +$'")
176
-      for CRONJOB in ${CRONJOBS}
177
-      do
178
-        COLOR="blanc"
179
-        MESSAGE="      - ${CRONJOB}"
180
-        if [ $(echo "${CRONJOB}" | grep "run-parts" | wc -l) -eq 1 ]; then
181
-          COLOR="vert"
182
-        fi
183
-        fct_message ${MESSAGE} -color ${COLOR}
184
-        if [ "${show_only}" == "false" ]; then
185
-          if [ ${#CRONJOB} -gt 0 ]; then
186
-            fct_message "      Checking database:"
187
-            MINUTES=$(echo ${CRONJOB} | cut -d' ' -f1)
188
-            HOURS=$(echo ${CRONJOB} | cut -d' ' -f2)
189
-            DAYS=$(echo ${CRONJOB} | cut -d' ' -f3)
190
-            MONTHS=$(echo ${CRONJOB} | cut -d' ' -f4)
191
-            DAYSOFWEEK=$(echo ${CRONJOB} | cut -d' ' -f5)
192
-            COMMAND=$(echo ${CRONJOB} | cut -d' ' -f6-)
193
-            REQUEST_ID_PARAMS="host='${VM}' and s_user='${TETALAB_USER}' and minutes='${MINUTES}' and hours='${HOURS}' 
194
-            and days='${DAYS}' and months='${MONTHS}' and daysofweek='${DAYSOFWEEK}' and command='${COMMAND}'"
195
-            RESULT=$(psql -q -t -h ${DB_HOST} -U ${DB_USER} -d ${DB_DATABASE} -c "select ID from
196
-            ref_cron where ${REQUEST_ID_PARAMS};")
197
-            if [ ${#RESULT} -eq 0 ]; then
198
-              fct_message "      -> Cronjob not in database, inserting..."
199
-              REQUEST_INSERT_PARAMS="'${VM}', '${TETALAB_USER}', '${MINUTES}',
200
-              '${HOURS}', '${DAYS}', '${MONTHS}', '${DAYSOFWEEK}', '${COMMAND}'"
201
-              psql -q -t -h ${DB_HOST} -U ${DB_USER} -d ${DB_DATABASE} -c "insert into ref_cron
202
-              (\"host\", \"s_user\", \"minutes\", \"hours\", \"days\", \"months\", \"daysofweek\", \"command\")
203
-              values (${REQUEST_INSERT_PARAMS});"
204
-            else
205
-              fct_message "      -> Cronjob already in database"
206
-            fi
207
-          fi
208
-        fi
209
-      done
210
-      IFS=${IFS_BAK}
211
-    done
212
-  done
213
-}
214
-
215
-#------------------------------------------------------------------------------------------------------------------
216
-# Traitement
217
-#------------------------------------------------------------------------------------------------------------------
218
-
219
-DB_HOST=""
220
-DB_DATABASE=""
221
-DB_USER=""
222
-
223
-check_config
224
-get_db_info
225
-clean_table
226
-refresh_cronjobs
227
-fct_erreur 0

+ 0
- 185
bin/sys_refresh_socle_bash.sh View File

@@ -1,185 +0,0 @@
1
-#!/bin/bash
2
-#------------------------------------------------------------------------------------------------------------------
3
-# Script         : sys_refresh_socle_bash.sh
4
-# Auteur         : Doug Le Tough
5
-# Date           : 23-07-2017
6
-# Version        : 1.0.0
7
-# Objet          : Permet la mise à jour de l'installation du socle bash
8
-#                  sur les VM du Tetalab
9
-#
10
-#------------------------------------------------------------------------------------------------------------------
11
-# Mise a jour :
12
-#
13
-# 1.0.0  22/07/2017   - Doug Le Tough   - Cre : Mise en production
14
-#
15
-#------------------------------------------------------------------------------------------------------------------
16
-# Dependances : Aucune
17
-#
18
-#------------------------------------------------------------------------------------------------------------------
19
-# Liste des options et arguments:
20
-#
21
-# Ce script n'accepte *aucune* option
22
-#
23
-# @OPT: f:bidon::::::
24
-#
25
-#------------------------------------------------------------------------------------------------------------------
26
-# Liste des paramètres de configuration:
27
-#
28
-# SOCLE_DIR=/home/asr/
29
-# SOCLE_GIT_URL=ssh://git@tetalab.org:2213/tetalab/socle_bash
30
-# TETALAB_VM[0]=jimmy.local.tetalab.org
31
-# TETALAB_VM[1]=billy.local.tetalab.org
32
-# TETALAB_VM[2]=marian.local.tetalab.org
33
-# TETALAB_VM[3]=sonny.local.tetalab.org
34
-# TETALAB_VM[4]=web.local.tetalab.org
35
-#
36
-#------------------------------------------------------------------------------------------------------------------
37
-# Liste des erreurs:
38
-#
39
-# 2 | erreur | stop | ${ERROR}
40
-#
41
-#------------------------------------------------------------------------------------------------------------------
42
-##
43
-## Syntaxe :
44
-## --------
45
-##
46
-##  prompt> sys_refresh_socle_bash.sh
47
-##
48
-##  ex:
49
-##       sys_refresh_socle_bash.sh
50
-##
51
-## Prérequis:
52
-## ----------
53
-## - Le script doit être executé par l'utilisateur asr sur sousetsuken
54
-##
55
-## Fonctionnement:
56
-## ---------------
57
-## Sur sousetsuken: Supprime la copie locale du dépôt Git du socle Bash, clone le dépôt Git dont l'URL est
58
-## définie dans le fichier de configuration (SOCLE_GIT_URL) et installe le socle Bash.
59
-##
60
-## Puis, copie, sur l'ensemble des VM listées dans le fichier de configuration (TETALAB_VM[*]),
61
-## le dépot Git local du socle Bash et l'installe.
62
-##
63
-#------------------------------------------------------------------------------------------------------------------
64
-#                     Initialisation de l'environement
65
-#------------------------------------------------------------------------------------------------------------------
66
-
67
-if [ "${USER}" != "asr" ]; then
68
-  ERROR="Seul l'utilisateur asr peut utiliser ce script"
69
-  echo -e "\033[91m${ERROR}\033[0m"
70
-  exit 1
71
-fi
72
-
73
-source /etc/profile.d/tetalab.sh
74
-
75
-if [ ! -f ${NC_EXPL_CFG}/init.conf ]; then
76
-  echo "Le fichier d'initialisation du socle \${NC_EXPL_CFG}/init.conf n'éxiste pas !"
77
-  echo "Arrêt du script par sécurité"
78
-  exit 250
79
-fi
80
-
81
-source ${NC_EXPL_CFG}/init.conf
82
-
83
-#------------------------------------------------------------------------------------------------------------------
84
-#  Fonctions
85
-#------------------------------------------------------------------------------------------------------------------
86
-
87
-function check_config
88
-{
89
-  fct_message "Vérification de la configuration:" -color jaune
90
-  if [ ! -r ${SH_FICCFG} ]; then
91
-    ERROR="Fichier de configuration ${SH_FICCFG} absent ou illisible"
92
-    fct_erreur 2
93
-  fi
94
-  if [ ${#SOCLE_DIR} -eq 0 ]; then
95
-    ERROR="Paramètre manquant ou vide dans le fichier de configuration: SOCLE_DIR"
96
-    fct_erreur 2
97
-  fi
98
-  if [ ${#SOCLE_GIT_URL} -eq 0 ]; then
99
-    ERROR="Paramètre manquant ou vide dans le fichier de configuration: SOCLE_GIT_URL"
100
-    fct_erreur 2
101
-  fi
102
-  if [ ${#TETALAB_VM[*]} -eq 0 ]; then
103
-    ERROR="Aucune VM définie dans le fichier de configuration"
104
-    fct_erreur 2
105
-  fi
106
-  fct_message "  * SOCLE_DIR: ${SOCLE_DIR}"
107
-  fct_message "  * SOCLE_GIT_URL: ${SOCLE_GIT_URL}"
108
-  INDEX=0
109
-  for VM in ${TETALAB_VM[@]}
110
-  do
111
-    fct_message "  * VM[${INDEX}]: ${VM}"
112
-    INDEX=$(( INDEX+1 ))
113
-  done
114
-}
115
-
116
-function rm_local_repo
117
-{
118
-  fct_message "Suppression de la copie locale du dépôt: ${SOCLE_DIR}" -color jaune
119
-  rm -Rf ${SOCLE_DIR}
120
-  RET_VAL=$?
121
-  if [ ! ${RET_VAL} -eq 0 ]; then
122
-    ERROR="Erreur lors de la suppression du dépôt local"
123
-    fct_erreur 2
124
-  fi
125
-}
126
-
127
-function install_local
128
-{
129
-  fct_message "Installation locale du socle Bash" -color jaune
130
-  sudo ${SOCLE_DIR}/install.sh
131
-  if [ ! ${RET_VAL} -eq 0 ]; then
132
-    ERROR="Erreur lors de l'installation du socle Bash"
133
-    fct_erreur 2
134
-  fi
135
-  fct_message "----------------------------------------------------------" 
136
-}
137
-
138
-function clone_repo
139
-{
140
-  fct_message "Clonage du dépôt distant ${SOCLE_GIT_URL}" -color jaune
141
-  git clone ${SOCLE_GIT_URL} ${SOCLE_DIR}
142
-  RET_VAL=$?
143
-  if [ ! ${RET_VAL} -eq 0 ]; then
144
-    ERROR="Erreur lors du clonage du dépôt"
145
-    fct_erreur 2
146
-  fi
147
-}
148
-
149
-function cp_install_repo
150
-{
151
-  for VM in ${TETALAB_VM[@]}
152
-  do
153
-    fct_message "Suppression du dépôt sur la VM: ${VM}" -color jaune
154
-    ssh ${VM} "rm -Rf ${SOCLE_DIR}"
155
-    RET_VAL=$?
156
-    if [ ! ${RET_VAL} -eq 0 ]; then
157
-      ERROR="Erreur lors de la suppression du dépôt"
158
-      fct_erreur 2
159
-    fi
160
-    fct_message "Copie du dépôt sur la VM: ${VM}" -color jaune
161
-    scp -qr ${SOCLE_DIR} ${VM}:${SOCLE_DIR}
162
-     if [ ! ${RET_VAL} -eq 0 ]; then
163
-      ERROR="Erreur lors de la copie du dépôt"
164
-      fct_erreur 2
165
-    fi
166
-    fct_message "Installation du socle Bash sur ${VM}" -color jaune
167
-    ssh ${VM} "sudo ${SOCLE_DIR}/install.sh"
168
-    if [ ! ${RET_VAL} -eq 0 ]; then
169
-      ERROR="Erreur lors de l'installation du socle Bash"
170
-      fct_erreur 2
171
-    fi
172
-    fct_message "----------------------------------------------------------"
173
-  done
174
-}
175
-
176
-#------------------------------------------------------------------------------------------------------------------
177
-# Traitement
178
-#------------------------------------------------------------------------------------------------------------------
179
-
180
-check_config
181
-rm_local_repo
182
-clone_repo
183
-install_local
184
-cp_install_repo
185
-fct_erreur 0

+ 0
- 35
conf/ctl_all_nrpe.conf View File

@@ -1,35 +0,0 @@
1
-IRC_BOT=/usr/local/bin/tetalab/ircbot.py
2
-NRPE_CHECK_PATH=/etc/nagios/nrpe/
3
-NRPE_CHECK_BIN=/usr/libexec/nagios/check_nrpe
4
-INFRA_SERVER=sousetsuken.local.tetalab.org
5
-# VM monitorée par NRPE
6
-# ATTENTION: web n'est *volontairement* pas monitorée par NRPE
7
-TETALAB_VM[0]=sousetsuken.local.tetalab.org
8
-TETALAB_VM[1]=jimmy.local.tetalab.org
9
-TETALAB_VM[2]=billy.local.tetalab.org
10
-TETALAB_VM[3]=sonny.local.tetalab.org
11
-TETALAB_VM[4]=marian.local.tetalab.org
12
-# Processus monitorés indépendemment de NRPE
13
-PROCESS[0]=sousetsuken.local.tetalab.org:/usr/sbin/httpd
14
-PROCESS[1]=sousetsuken.local.tetalab.org:/usr/sbin/named
15
-PROCESS[2]=sousetsuken.local.tetalab.org:/usr/sbin/ntpd
16
-PROCESS[3]=sousetsuken.local.tetalab.org:/usr/sbin/crond
17
-PROCESS[4]=sousetsuken.local.tetalab.org:/usr/bin/nrpe
18
-PROCESS[5]=marian.local.tetalab.org:/usr/sbin/httpd
19
-PROCESS[6]=marian.local.tetalab.org:/usr/sbin/ntpd
20
-PROCESS[7]=marian.local.tetalab.org:/usr/sbin/crond
21
-PROCESS[8]=marian.local.tetalab.org:/usr/bin/nrpe
22
-PROCESS[9]=web.local.tetalab.org:/usr/lib/postfix/sbin/master
23
-PROCESS[10]=sonny.local.tetalab.org:/usr/lib64/postgresql/9.6/bin/postgres
24
-PROCESS[11]=sonny.local.tetalab.org:/usr/sbin/ntpd
25
-PROCESS[12]=sonny.local.tetalab.org:/usr/sbin/crond
26
-PROCESS[13]=sonny.local.tetalab.org:/usr/bin/nrpe
27
-PROCESS[14]=jimmy.local.tetalab.org:/usr/sbin/httpd
28
-PROCESS[15]=jimmy.local.tetalab.org:/usr/sbin/node
29
-PROCESS[16]=jimmy.local.tetalab.org:/usr/sbin/ntpd
30
-PROCESS[17]=jimmy.local.tetalab.org:/usr/sbin/crond
31
-PROCESS[18]=jimmy.local.tetalab.org:/usr/bin/nrpe
32
-PROCESS[19]=billy.local.tetalab.org:/usr/sbin/ntpd
33
-PROCESS[20]=billy.local.tetalab.org:/usr/sbin/crond
34
-PROCESS[21]=billy.local.tetalab.org:/usr/bin/nrpe
35
-PROCESS[22]=billy.local.tetalab.org:/usr/sbin/httpd

+ 0
- 8
conf/ctl_vm.conf View File

@@ -1,8 +0,0 @@
1
-NUC=nuc.tetalab.org
2
-NUC_SSH_PORT=2022
3
-IRC_BOT=/usr/local/bin/tetalab/ircbot.py
4
-TETALAB_VM[0]=jimmy
5
-TETALAB_VM[1]=billy
6
-TETALAB_VM[2]=marian
7
-TETALAB_VM[3]=sonny
8
-TETALAB_VM[4]=web

conf/sys_refresh_ref_cron.conf → conf/expl_dummy_script.conf View File

@@ -1,8 +1,5 @@
1
-PGPASSFILE=/home/asr/.pgpass
2
-DB_TABLE=ref_cron
3
-TETALAB_USERS[0]=root
4
-TETALAB_USERS[1]=asr
5
-TETALAB_VM[0]=sousetsuken.local.tetalab.org
1
+DUMMY_VAR="Variable bidon pour test"
2
+TETALAB_VM[0]=sousetsukenlocal.tetalab.org
6 3
 TETALAB_VM[1]=jimmy.local.tetalab.org
7 4
 TETALAB_VM[2]=billy.local.tetalab.org
8 5
 TETALAB_VM[3]=marian.local.tetalab.org

+ 0
- 5
conf/expl_refresh_thsf_site.conf View File

@@ -1,5 +0,0 @@
1
-THSF_DIR=/var/www/www.thsf.net
2
-THSF_GIT_URL=ssh://git@jimmy:/fatalerrors/thsf-pico
3
-THSF_GIT_USER=asr
4
-THSF_HTTPD_USER=apache
5
-THSF_DIR_MODE=755

+ 1
- 0
conf/lisezmoi.txt View File

@@ -0,0 +1 @@
1
+Ce repertoire recoit les fichiers de configuration utilises par les scripts

+ 0
- 5
conf/sys_create_vhost.conf View File

@@ -1,5 +0,0 @@
1
-RPROXY_VHOST_TEMPLATE=rproxy_template.conf
2
-REMOTE_VHOST_TEMPLATE=backend_template.conf
3
-DEHYDRATED_DOMAIN_LIST=/etc/dehydrated/domains.txt
4
-HTTPD_PATH=/etc/httpd/sites-available
5
-WWW_ROOT_DIR=/var/www

+ 0
- 7
conf/sys_refresh_socle_bash.conf View File

@@ -1,7 +0,0 @@
1
-SOCLE_DIR=/home/asr/socle_bash
2
-SOCLE_GIT_URL=ssh://git@jimmy/tetalab/socle_bash
3
-TETALAB_VM[0]=jimmy.local.tetalab.org
4
-TETALAB_VM[1]=billy.local.tetalab.org
5
-TETALAB_VM[2]=marian.local.tetalab.org
6
-TETALAB_VM[3]=sonny.local.tetalab.org
7
-TETALAB_VM[4]=web.local.tetalab.org

+ 0
- 13
mod/backend_template.conf View File

@@ -1,13 +0,0 @@
1
-<VirtualHost SITE_IP:SITE_PORT>
2
-        ServerName SITE_NAME
3
-        ServerAdmin bofh@tetalab.org
4
-        DocumentRoot /var/www/SITE_NAME
5
-        RemoteIPHeader X-Forwarded-For
6
-        RemoteIPInternalProxy 192.168.122.0/24
7
-        <Directory /var/www/SITE_NAME>
8
-                AllowOverride All
9
-                Require all granted
10
-        </Directory>
11
-        ErrorLog /var/log/httpd/SITE_NAME.error.log
12
-        CustomLog /var/log/httpd/SITE_NAME.access.log combined
13
-</VirtualHost>

+ 1
- 0
mod/lisezmoi.txt View File

@@ -0,0 +1 @@
1
+Ce repertoire recoit les modeles utilises par les scripts

+ 0
- 36
mod/rproxy_template.conf View File

@@ -1,36 +0,0 @@
1
-<VirtualHost 192.168.122.42:80>
2
-    # ReverseProxy with https redirect template
3
-    #
4
-    # Written by Doug Le Tough
5
-    #
6
-    # Usage:
7
-    # sed -s 's/SITE_NAME/example.com/g' site_template.conf > example.org.conf
8
-    # sed -i 's/SITE_HOST/hostname.local.tetalab.org/g' example.org.conf
9
-    #
10
-    Define FQDN SITE_NAME
11
-    Define HOST SITE_HOST
12
-    Define HOST_PORT SITE_PORT
13
-    ServerName ${FQDN}
14
-    ### All HTTP requests are converted to HTTPS requests
15
-    <IfModule mod_rewrite.c>
16
-      RewriteEngine On
17
-      RewriteCond %{HTTPS} off
18
-      RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
19
-    </IfModule>
20
-    ErrorLog "/var/log/httpd/${FQDN}_error.log"
21
-    CustomLog "/var/log/httpd/${FQDN}_access.log" Combined
22
-</VirtualHost>
23
-<VirtualHost 192.168.122.42:443>
24
-    Header always set Strict-Transport-Security "max-age=63072000; includeSubDomains"
25
-    ServerName ${FQDN}
26
-    ProxyPreserveHost On
27
-    SSLEngine on
28
-    SSLCertificateFile      /etc/dehydrated/certs/${FQDN}/cert.pem
29
-    SSLCertificateKeyFile   /etc/dehydrated/certs/${FQDN}/privkey.pem
30
-    SSLCertificateChainFile /etc/dehydrated/certs/${FQDN}/fullchain.pem
31
-    RequestHeader set X_FORWARDED_PROTO 'https'
32
-    ProxyPass / http://${HOST}:${HOST_PORT}/
33
-    ProxyPassReverse / http://${HOST}:${HOST_PORT}/
34
-    ErrorLog "/var/log/httpd/${FQDN}_error.log"
35
-    CustomLog "/var/log/httpd/${FQDN}_access.log" Combined
36
-</VirtualHost>

+ 0
- 2
msg/ctl_all_nrpe.msg View File

@@ -1,2 +0,0 @@
1
-2 | erreur | stop | ${ERROR}
2
-3 | erreur | continu | ${ERROR}

+ 0
- 3
msg/ctl_host_process.msg View File

@@ -1,3 +0,0 @@
1
-1 | erreur | stop | Processus inexistant sur ${vm}
2
-2 | erreur | stop | ${ERROR}
3
-3 | erreur | continu | ${ERROR}

+ 0
- 2
msg/ctl_vm.msg View File

@@ -1,2 +0,0 @@
1
-2 | erreur | stop | ${ERROR}
2
-3 | erreur | continu | ${ERROR}

msg/sys_create_vhost.msg → msg/expl_dummy_script.msg View File


+ 0
- 2
msg/expl_refresh_thsf_site.msg View File

@@ -1,2 +0,0 @@
1
-2 | erreur | stop | ${ERROR}
2
-3 | erreur | continu | ${ERROR}

+ 0
- 3
msg/expl_transfert_dir.msg View File

@@ -1,3 +0,0 @@
1
-1 | erreur | stop | Sortie du script
2
-2 | erreur | stop | ${ERROR}
3
-3 | erreur | exec | rm_archives

+ 0
- 1
msg/sys_deploy_socle.msg View File

@@ -1 +0,0 @@
1
-2 | erreur | stop | ${ERROR}

+ 0
- 2
msg/sys_refresh_ref_cron.msg View File

@@ -1,2 +0,0 @@
1
-2 | erreur | stop | ${ERROR}
2
-3 | erreur | continu | ${ERROR}

+ 0
- 2
msg/sys_refresh_socle_bash.msg View File

@@ -1,2 +0,0 @@
1
-2 | erreur | stop | ${ERROR}
2
-3 | erreur | continu | ${ERROR}

Loading…
Cancel
Save