Files
init.sh/init.sh
2021-06-18 12:02:01 +02:00

89 lines
2.1 KiB
Bash
Executable File

#!/bin/bash
# Init : initialise une machine et la met en conformité
# Copyright (c) 2021 Geoffray Levasseur <geoffray.levasseur@obs-mip.fr>
# trace ERR through pipes
set -o pipefail
# trace ERR through 'time command' and other functions
set -o errtrace
# set -e : exit the script if any statement returns a non-true return value
set -o errexit
export VERSION="0.95.1"
# Stocke le chemin du script
MYPATH=$(dirname $0)
# Charge les bibliothèques
for lib in $MYPATH/lib/*.sh; do
. $lib
done
# Check if a function exists
function_exists() {
declare -f -F $1 > /dev/null
return $?
}
function_exists prnt || (
echo "Il manque des fonctions vitales venant des bibliothèques !"
exit 2
)
# Vérifie qu'on soit root
if [[ $EUID -ne 0 ]];
prnt E "Ce script doit être démarré en tant que root. Arrêt."
die 1
fi
# Variables globales importantes
export HOSTNAME=$(hostname)
export LOGFILE=${LOGFILE:-"$MYPATH/log/init-$(uname -n)-$(stdtime).log"}
prnt I "Création du répertoire d'accueil du fichier log..."
[[ ! -d $(dirname $LOGFILE) ]] && mkdir -pv $(dirname $LOGFILE)
# Log toutes les sortie dans le fichier de log
exec 3>&1 4>&2
trap 'exec 2>&4 1>&3' 0 1 2 3
exec 1>$LOGFILE 2>&1
# Récupère la configuration
prnt I "Chargement de la configuration..."
if [[ -e $MYPATH/conf/$HOSTNAME.conf ]]; then
prnt I "Une configuration spécifique sera utilisé."
. $MYPATH/conf/$HOSTNAME.conf
else
if [[ -e $MYPATH/conf/init.conf.sh ]]; then
prnt I "Une configuration générique sera utilisé."
. $MYPATH/conf/init.conf.sh
else
prnt E "Aucune configuration trouvée, impossible de continuer."
die 2
fi
fi
# ======================
# ==== Main Program ====
# ======================
upgrade_dist
[[ ! $PVEHST ]] && install_ceph && conf_ceph
[[ ! $PVEHST ]] && apt_blacklist
#[[ ! $PVEHST ]] && authnz
#[[ ! $PVEHST ]] && add_users
conf_locale
install_pkg
conf_ntp
conf_ssh
install_profile
patch_snmp
install_mk-agent
conf_syslog
conf_mail
prnt I "That's all folks !"
echo "Après vérification des logs, il est recommandé de redémarrer la machine..."