#!/bin/bash
#####################################################################################
#																					#
#	Auteur : Néhémie Barkia															#
#																					#
#	Synopsis : Scripte d'installation et de configuration 
# 		       automatique de node-exporter	    		#
#																					#
#																					#
#####################################################################################
# sortir du script en cas d'erreur
set -e
# Fonction pour l'affichage écran et la journalisation dans un fichier de log
suiviInstallation()
{
	echo "# $1"
	echo "#####"`date +"%d-%m-%Y %T"`"$1">>$FICHIER_DE_LOG
}

# Fonction qui gère l'affichage d'un message de réussite
toutEstOK()
{
	echo -e "  '--> \e[32mOK\e[0m"
}
# Fonction qui gère l'affichage d'un message d'erreur et l'arrêt du script en cas de problème
erreurOnSort()
{
    echo -e "\e[41m"`tail -1 $FICHIER_DE_LOG`"\e[0m"
    echo -e "  '--> \e[31mUne erreur s'est produite\e[0m, consultez le fichier \e[93m$FICHIER_DE_LOG\e[0m pour plus d'informations"
    exit 1
}
# Variables 
touch /root/install-lamp.log
FICHIER_DE_LOG="/root/install-lamp.log"

# On fait un clear pour la propreté de l'affichage.
clear
suiviInstallation "Installation des prérequis"
apt-get install curl -y &>>$FICHIER_DE_LOG && toutEstOK || erreurOnSort



suiviInstallation "Création de l'utilisateur de node-exporter"
useradd -rs /bin/false node_exporter &>>$FICHIER_DE_LOG && toutEstOK || erreurOnSort

suiviInstallation "Changement de répertoire"
cd /tmp &>>$FICHIER_DE_LOG && toutEstOK || erreurOnSort

suiviInstallation "Téléchargement de l'archive"
curl -LO https://github.com/prometheus/node_exporter/releases/download/v0.18.1/node_exporter-0.18.1.linux-amd64.tar.gz &>>$FICHIER_DE_LOG && toutEstOK || erreurOnSort


suiviInstallation "Extraction de l'archive"
tar -xvf node_exporter-0.18.1.linux-amd64.tar.gz &>>$FICHIER_DE_LOG && toutEstOK || erreurOnSort

suiviInstallation "Déplacement des fichiers"
mv node_exporter-0.18.1.linux-amd64/node_exporter /usr/local/bin/ &>>$FICHIER_DE_LOG && toutEstOK || erreurOnSort

suiviInstallation "Attribution des droits"
chown node_exporter /usr/local/bin/node_exporter &>>$FICHIER_DE_LOG && toutEstOK || erreurOnSort

cat <<EOF > /etc/systemd/system/node_exporter.service
[Unit]
Description=Node Exporter
After=network.target
 
[Service]
User=node_exporter
Group=node_exporter
Type=simple
ExecStart=/usr/local/bin/node_exporter
 
[Install]
WantedBy=multi-user.target
EOF

suiviInstallation "Rechargement de la configruation des démons"
systemctl daemon-reload &>>$FICHIER_DE_LOG && toutEstOK || erreurOnSort


suiviInstallation "Démarrage de node_exporter"
systemctl start node_exporter &>>$FICHIER_DE_LOG && toutEstOK || erreurOnSort


suiviInstallation "Activation de node_exporter"
systemctl enable node_exporter &>>$FICHIER_DE_LOG && toutEstOK || erreurOnSort


# Fin
suiviInstallation "Le serveur est prêt !"&& exit 0