From ea7cb827fa15be79279f63c50356a7c3a1485337 Mon Sep 17 00:00:00 2001
From: David Beniamine <david.beniamine@tetras-libre.fr>
Date: Mon, 29 Jul 2024 12:11:25 +0200
Subject: [PATCH] improve emails

---
 auto-start-reverseSSHproxy.sh | 30 ++++++++++++++++++
 net-switch.sh                 | 59 +++++++++++++++++++++++++++++++++--
 reverseSSHproxy.sh            |  0
 3 files changed, 87 insertions(+), 2 deletions(-)
 mode change 100644 => 100755 auto-start-reverseSSHproxy.sh
 mode change 100644 => 100755 net-switch.sh
 mode change 100644 => 100755 reverseSSHproxy.sh

diff --git a/auto-start-reverseSSHproxy.sh b/auto-start-reverseSSHproxy.sh
old mode 100644
new mode 100755
index 46a6f7b..c4754f8
--- a/auto-start-reverseSSHproxy.sh
+++ b/auto-start-reverseSSHproxy.sh
@@ -38,6 +38,7 @@ if [[ -f "$stateFile" ]]; then
             cd $reverseSSHproxyPath
             docker-compose down
             echo "normal" > "$stateFile"
+            do_sendmail_start root
         fi
     else
         if [[ $state = "normal" ]]; then
@@ -45,8 +46,37 @@ if [[ -f "$stateFile" ]]; then
             cd $reverseSSHproxyPath
             docker-compose up -d
             echo "backup" > "$stateFile"
+            do_sendmail_stop root
         fi
     fi
 else
     echo "normal" > "$stateFile"
 fi
+
+do_sendmail_start() {
+cat <<EOF | sendmail -t root
+Subject: [$(hostname)] Serveur Tetrix injoignable
+
+Bonjour,
+
+$(hostname) viens de detecter que Tetrix est injoignable par son IP normale ($tetrixPublicIPOnOVH).
+Le système d'accès à distance à Tétrix via $(hostname) (reverseSSHproxyPath) est actif,
+dès que le réseau passera en mode de secours (4G), ce dernier sera joignable à nouveau.
+
+Cordialement,
+EOF
+}
+
+do_sendmail_stop() {
+cat <<EOF | sendmail -t root
+Subject: [$(hostname)] Serveur Tetrix injoignable
+
+Bonjour,
+
+$(hostname) viens de detecter que Tetrix est à nouveau joignable par son IP nornale ($tetrixPublicIPOnOVH).
+Le système d'accès à distance à Tétrix via $(hostname) (reverseSSHproxyPath) est désactivé,
+dès que le réseau repassera en mode de normal (Fibre), ce dernier sera joignable à nouveau.
+
+Cordialement,
+EOF
+}
diff --git a/net-switch.sh b/net-switch.sh
old mode 100644
new mode 100755
index bdfb65d..f2313af
--- a/net-switch.sh
+++ b/net-switch.sh
@@ -32,6 +32,8 @@ stateFile="/opt/net-state"
 currentIP=`curl api.ipify.org`
 
 reverseSSHProxyPath="/opt/reverseSSHproxy.sh"
+recipient="all@tetras-libre.fr"
+adminemail="sysadmin@tetras-libre.fr"
 
 # check if file exist
 if [[ -f "$stateFile" ]]; then
@@ -46,7 +48,7 @@ if [[ -f "$stateFile" ]]; then
             kill $pid
             change_dns $APIKEY $tetrixPublicIPOnOVH
             echo "normal" > "$stateFile"
-            bash send_maintenance_mail.sh modele-mail-netbascule-stop
+            do_sendmail_start
         fi
     else
         if [[ $state = "normal" ]]; then
@@ -54,7 +56,7 @@ if [[ -f "$stateFile" ]]; then
             bash $reverseSSHProxyPath &
             change_dns $APIKEY $aquilaPublicIPOnOVH
             echo "backup" > "$stateFile"
-            bash send_maintenance_mail.sh modele-mail-netbascule-start
+            do_sendmail_stop
         fi
     fi
 else
@@ -74,3 +76,56 @@ change_dns() {
                 https://api.gandi.net/v5/livedns/domains/tetras-libre.fr/records/tetrixx/A
 
 }
+
+
+do_sendmail_start() {
+cat <<EOF | sendmail -t $recipient
+Subject: [$(hostname)] Bascule du réseau en $1
+
+Bonjour,
+
+La bascule automatique du réseau viens de s'activer sur $(hostname). Passage en $1.
+
+Pour utiliser gitlab, vous devez ajouter ces lignes dans ~/.ssh/config :
+
+host gitlab.tetras-libre.fr
+    Port 2223
+
+
+La bascule se fait via un changement de DNS qui peut mettre un peu de temps à ce propager (3h) max.
+Pendant ce temps vous pouvez ajouter les lignes suivantes dans /etc/hosts:
+
+$aquilaPublicIPOnOVH nextcloud.tetras-libre.fr
+$aquilaPublicIPOnOVH gitlab.tetras-libre.fr
+$aquilaPublicIPOnOVH dolibarr.tetras-libre.fr
+$aquilaPublicIPOnOVH passbolt.tetras-libre.fr
+
+En cas de problème, contactez $adminemail
+
+Cordialement,
+EOF
+}
+
+
+do_sendmail_stop() {
+cat <<EOF | sendmail -t $recipient
+Subject: [$(hostname)] Bascule du réseau en $1
+
+Bonjour,
+
+La bascule automatique du réseau viens de s'activer sur $(hostname). Passage en $1.
+
+Pour utiliser gitlab, pensez à supprimer les lignes concernant gitlab.tetras-libre.fr dans ~/.ssh/config.
+
+
+La bascule se fait via un changement de DNS qui peut mettre un peu de temps à ce propager (3h) max.
+Pendant ce temps vous pouvez ajouter les lignes suivantes dans /etc/hosts:
+
+$tetrixPublicIPOnOVH nextcloud.tetras-libre.fr
+$tetrixPublicIPOnOVH gitlab.tetras-libre.fr
+$tetrixPublicIPOnOVH dolibarr.tetras-libre.fr
+$tetrixPublicIPOnOVH passbolt.tetras-libre.fr
+
+En cas de problème, contactez $adminemail
+EOF
+}
diff --git a/reverseSSHproxy.sh b/reverseSSHproxy.sh
old mode 100644
new mode 100755
-- 
GitLab