Écriture des fonctions de préparation des disques, partie 1

This commit is contained in:
fatalerrors
2021-05-31 19:15:38 +02:00
parent 65dde781f1
commit 8e6bdaccfd
4 changed files with 166 additions and 27 deletions

View File

@@ -1,19 +1,128 @@
#!/bin/bash
# Configuration du disque de calcul
# ------------------------------------------------------------------------------
# Cas de ZFS
conf_zfs()
{
prnt I "Création du volume calcul en ZFS."
# On crée les répertoires d'accueil
mkdir -pv /calcul/$HOSTNAME
# Installation de ZFS
apt -y install zfsutils-linux
# Mount Ceph volumes if required
# Chargement du module et vérification
modprobe zfs || (
prnt E "Échec de chargement du module noyau, abandon."
return 2
)
sleep 1
prnt I "Création du pool zcalc..."
if [[ $FORCEBLANK ]]; then
local opt="--force"
for drv in $CALCDRV; do
if [[ ! $(sfdisk -d $drv 2>&1) == "" ]]; then
prnt I "Effacement des donnée de $drv..."
dd if=/dev/zero of=$drv bs=1024 count 1000000
fi
done
fi
if [[ zpool create zcalc -m /calcul/$HOSTNAME $CALCLEVEL $opt $CALCDRV ]]; then
# On active la compression par défaut
zpool set zcalc compression=lz4
if [[ $WITH_VM == true ]]; then
prnt I "Création du conteneur pour la future VM..."
zfs create zcalc/vm
fi
else
prnt E "Erreur de création du pool zcalc ($CALCLEVEL) avec les disques $CALCDRV"
return 3
fi
}
# ------------------------------------------------------------------------------
# Création des partitions pour XFS et Ext4
mkpart()
{
prnt I "Création d'une nouvelle table de partition GPT..."
#fdisk -g
}
# ------------------------------------------------------------------------------
conf_ext4()
{
}
# ------------------------------------------------------------------------------
conf_xfs()
{
prnt I "Installation des outils XFS..."
apt install -y xfsprogs
}
# ------------------------------------------------------------------------------
conf_disk()
{
case $CALCTYPE
[[ $STOP_CONF_DISK ]] && return 0
if [[ ! $CALCDRV ]]; then
prnt I "Pas de disque de calcul défini, rien à faire."
return 0
fi
prnt I "Installation des outils de partitionnement..."
apt install -y parted
conf_$CALCTYPE && (
prnt I "Attribution des droits sur le disque de calcul."
chown -Rv $MAINUSER:$MAINUSER /calcul/$HOSTNAME
)
else
}
# ------------------------------------------------------------------------------
precheck_conf_disk()
{
if [[ ! $(type -t conf_$CALCTYPE) == "function" ]]; then
prnt E "Format de disque inconnu ($CALCTYPE) !"
exit 1
fi
prnt I "Vérification des lecteurs pour disque de calcul."
local drvcount=0
for drv in $CALCDRV; do
if [[ -e $drv ]]; then
if [[ $(/sbin/sfdisk -d $drv 2>&1) == "" ]]; then
prnt I "Le dique $drv est vierge."
else
prnt W "Le disque $drv n'est pas vierge !"
if [[ $FORCEBLANK=="true" ]]; then
prnt W "Le disque $drv sera réinitialisé !"
else
prnt E "La réinitialisation de $drv n'est pas autorisé, rien ne sera fait !"
export STOP_CONF_DISK=1
fi
fi
else
prnt E "Le disque $drv n'existe pas. Abandon."
exit 1
fi
(( drvcount+=1 ))
done
if [[ ! $CALCTYPE=="zfs" && drvcount -gt 1 ]]; then
prnt E "Plusieurs diques impossibles avec Ext4 ou XFS !"
exit 1
fi
}
export -f conf_disk
export -f precheck_conf_disk

View File

@@ -9,19 +9,15 @@ upgrade_dist()
prnt I "Configuration du proxy pour APT..."
if [[ $PROXYSRV ]]; then
if [[ $PROXYPORT ]]; then
if [[ ! -d $(basedir $proxyfile) ]]; then
mkdir -pv /etc/apt/apt.conf.d || (
prnt E "Impossiblle de créer le répertoire d'accueil pour la configuration d'APT."
exit 10
)
fi
backupdist $proxyfile
echo "# Generated automatically on $(date $DATEFORMAT) by $0" > $proxyfile
echo "Acquire::http::Proxy \"http://${ACNGSRV}:3142\";" >> $proxyfile
else
prnt E "Un serveur proxy a été spécifié mais pas son port d'usage."
if [[ ! -d $(basedir $proxyfile) ]]; then
mkdir -pv /etc/apt/apt.conf.d || (
prnt E "Impossiblle de créer le répertoire d'accueil pour la configuration d'APT."
exit 10
)
fi
backupdist $proxyfile
echo "# Generated automatically on $(date $DATEFORMAT) by $0" > $proxyfile
echo "Acquire::http::Proxy \"http://${PROXYSRV}:${PROXYPORT}\";" >> $proxyfile
else
prnt I "Pas de proxy configuré, ne fait rien."
fi
@@ -36,5 +32,22 @@ upgrade_dist()
apt autoremove --purge -y
}
export -f upgrade_dist
precheck_upgrade_dist()
{
prnt I "Vérification du réseau..."
wget -q --tries=10 --timeout=20 --spider http://google.com
if [[ ! $? -eq 0 ]]; then
prnt E "Réseau non fonctionnel ! Abandon."
exit 1
fi
if [[ $PROXYSRV ]]; then
[[ ! $PROXYPORT ]] && (
prnt E "Un serveur proxy a été spécifié mais pas son port d'usage."
exit 1
)
fi
}
export -f upgrade_dist
export -f precheck_upgrade_dist