#!/bin/bash
#####################################################################################
#																					#
#	Auteur : Néhémie Barkia															#
#																					#
#	Synopsis : Scripte d'installation et de configuration automatique`				#
#   		   d'un serveur MariaDB. 												#
#																					#
#####################################################################################
# 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"
#utilisateur : admin
MOT_DE_PASSE_ADMIN="P@ssw0rd"
# On fait un clear pour la propreté de l'affichage.
clear
# Installation du serveur MariaDB.
suiviInstallation "Installation des services Apache, MariaDB et SSH"
apt-get -y install mariadb-server &>>$FICHIER_DE_LOG && toutEstOK || erreurOnSort
# Configuration de MariaDBpour l’accès distant (2 opérations)
suiviInstallation "Configuration de MariaDB pour l’accès distant (2 opérations)"
sed -i -e 's/^bind-address/#bind-address/' /etc/mysql/mariadb.conf.d/50-server.cnf &>>$FICHIER_DE_LOG && toutEstOK || erreurOnSort
systemctl restart mariadb &>>$FICHIER_DE_LOG&&toutEstOK || erreurOnSort
# Création d'un compte admin pour l'administration de MariaDB
suiviInstallation "Création d'un compte admin pour l'administration de MariaDB"
mariadb -u root -e "CREATE USER admin@'%'; GRANT ALL PRIVILEGES ON *.* to admin@'%' IDENTIFIED BY '$MOT_DE_PASSE_PHPMYADMIN' WITH GRANT OPTION; FLUSH PRIVILEGES;" &>>$FICHIER_DE_LOG && toutEstOK || erreurOnSort
# Fin
suiviInstallation "Le serveur est prêt !"&& exit 0