apt commands no longer hardcoded, moved includes, main program improvement, some cleanup

This commit is contained in:
levasseur
2021-06-08 17:39:53 +02:00
parent 754dfa1934
commit ce4542cf99
8 changed files with 113 additions and 23 deletions

View File

@@ -0,0 +1,20 @@
# Configuration propre à Debian
# Conf gestionnaire de paquet
export PKG_MAN="apt-get"
export COM_INSTALL="install -y"
export COM_UPDATE="update"
export COM_UPGRADE="full-upgrade -y"
export COM_REMOVE="remove --purge -y"
export COM_AUTOREM="autoremove --purge -y"
# Conf chemin
export RC_SCRIPTS_PATH="/etc/init.d"
# Conf init
# Init SystemV ou OpenRC:
#export INIT_COM="/etc/init.d/%srv% %comm%"
# Init Systemd:
#export INIT_COM="systemctl %comm% %srv%"
# Init Upstart (plus ou moins universel)
export INIT_COM="service %srv% %comm%"

View File

@@ -2,11 +2,13 @@
export MAINDOM="legos.obs-mip.fr" export MAINDOM="legos.obs-mip.fr"
# Proxy LEGOS # Proxy LEGOS
export PROXYAPT="acng.legos.obs-mip.fr"
export PROXYAPTPORT="3142"
export PROXYSRV="proxy.legos.obs-mip.fr" export PROXYSRV="proxy.legos.obs-mip.fr"
export PROXYPORT="3128" export PROXYSRVPORT="3128"
# Paquets à enlever après installation # Paquets à enlever après installation
export RMLIST="apparmor chafa laptop-detect resolvconf" export RMLIST="apparmor laptop-detect resolvconf"
export APTBLACKLIST="apparmor chafa resolvconf" export APTBLACKLIST="apparmor chafa resolvconf"
# Langues supportés # Langues supportés

View File

@@ -1,7 +1,14 @@
. conf/includes/legos.conf.sh # Fichier de configuration principal
# Utilisateur de la machine # Importe les paramètres spécifiques LEGOS
export MAINUSER="levasseu" . $MYPATH/conf/includes/legos.conf.sh
# Importe les paramètres pour Debian
. $MYPATH/conf/includes/debian.conf.sh
# -------------- Section générale ---------------
# Utilisateur de la machine (celui qui sera renseigné dans l'installeur Ubuntu)
export MAINUSER="levasseur"
# Interface réseau principale # Interface réseau principale
export MAINIF="eth0" export MAINIF="eth0"
@@ -9,7 +16,16 @@ export MAINIF="eth0"
# Booléen indiquant une ou plusieurs futures VM # Booléen indiquant une ou plusieurs futures VM
export WITH_VM="true" export WITH_VM="true"
# Indique la déclinaison d'Ubuntu à installer
# * xubuntu : bureau XFCE léger (par défaut)
# * ubuntu : bureau Gnome lourd, très peu configurable
# * kubuntu : bureau KDE lourd, très configurable
# * ubuntu-mate : bureau Mate intermédiaire légèrement configurable
# * lubuntu : bureau LXQT très léger
export UBUNTU_FLAVOR=xubuntu
# ------------------------------------------------------------------------------ # ------------------------------------------------------------------------------
# -------------- Section disque de calcul ---------------
# Niveau ZFS : mirror (RAID1), raidz1 (RAID5), raidz2 (RAID6) # Niveau ZFS : mirror (RAID1), raidz1 (RAID5), raidz2 (RAID6)
# Laisser vide pour RAID0 # Laisser vide pour RAID0
export CALCLEVEL="" export CALCLEVEL=""
@@ -22,5 +38,6 @@ export CALCDRV="/dev/disk/by-id/xxxxx"
export FORCEBLANK="no" export FORCEBLANK="no"
# ------------------------------------------------------------------------------ # ------------------------------------------------------------------------------
# -------------- Section modules d'init ---------------
export MODULE_LIST="upgrade_dist conf_disks conf_locale conf_ntp" export MODULE_LIST="upgrade_dist conf_disks conf_locale conf_ntp conf_ssh \
install_desktop install_pkg"

12
init.sh
View File

@@ -1,4 +1,6 @@
#!/bin/bash #!/bin/bash
# Init : initialise une machine et la met en conformité
# Copyright (c) 2021 Geoffray Levasseur <geoffray.levasseur@obs-mip.fr>
# Remember the running path # Remember the running path
MYPATH=$(dirname $0) MYPATH=$(dirname $0)
@@ -10,7 +12,15 @@ done
# Important global variables # Important global variables
export HOSTNAME=$(hostname) export HOSTNAME=$(hostname)
export LOGFILE=${LOGFILE:-"/var/log/$(uname -n)-$(stdtime).log"} export LOGFILE=${LOGFILE:-"/root/init-$(uname -n)-$(stdtime).log"}
# Log toute 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
. $MYPATH/conf/init.conf.sh
# Authentication # Authentication
#authnz() #authnz()

View File

@@ -1,6 +1,6 @@
# Some display functions and defines color codes # Some display functions and defines color codes
# (standard 16 colors display)
# Standard 16 colors display declaration
DEFAULTFG="\e[0;39m" DEFAULTFG="\e[0;39m"
DEFAULTBG="\e[0;49m" DEFAULTBG="\e[0;49m"
DEFAULTCOL=${DEFAULTBG}${DEFAULTFG} DEFAULTCOL=${DEFAULTBG}${DEFAULTFG}

43
lib/pkgman.sh Normal file
View File

@@ -0,0 +1,43 @@
# Fonctions de gestion de paquets
# Mise à jour de la base de donnée
pkgupdt()
{
prnt I "Mise à jour de la liste des paquets..."
$PKG_MAN $COM_UPDATE $@
}
export -f pkgupdt
# Installation
pkginst()
{
prnt I "Installation de paquets..."
[[ $# -lt 1 ]] && prnt E "pkginst(): des paramètres sont requis." && exit 11
$PKG_MAN $COM_INSTALL $@
}
export -f pkginst
# Mise à jour
pkgupgd()
{
prnt I "Application de la mise à jours du système..."
$PKG_MAN $COM_UPGRADE $@
}
export -f pkgupgd
# Désinstallation
pkgrem()
{
prnt I "Désinstallation de paquets..."
[[ $# -lt 1 ]] && prnt E "pkgrem(): des paramètres sont requis." && exit 11
$PKG_MAN $COM_REMOVE $@
}
export -f pkgrem
# Désinstallation du superflu
pkgautorem()
{
prnt I "Désinstallation de paquets superflus..."
$PKG_MAN $COM_AUTOREM $@
}
export -f pkgautorem

View File

@@ -11,7 +11,7 @@ conf_zfs()
mkdir -pv /calcul/$HOSTNAME mkdir -pv /calcul/$HOSTNAME
# Installation de ZFS # Installation de ZFS
apt -y install zfsutils-linux pkginst zfsutils-linux
# Chargement du module et vérification # Chargement du module et vérification
modprobe zfs || ( modprobe zfs || (
@@ -64,7 +64,7 @@ conf_ext4()
conf_xfs() conf_xfs()
{ {
prnt I "Installation des outils XFS..." prnt I "Installation des outils XFS..."
apt install -y xfsprogs pkginst xfsprogs
mkpart mkpart
# A finir # A finir
} }
@@ -81,7 +81,7 @@ conf_disk()
fi fi
prnt I "Installation des outils de partitionnement..." prnt I "Installation des outils de partitionnement..."
apt install -y parted pkginst parted
conf_$CALCTYPE && ( conf_$CALCTYPE && (
prnt I "Attribution des droits sur le disque de calcul." prnt I "Attribution des droits sur le disque de calcul."

View File

@@ -1,14 +1,12 @@
#!/bin/bash #!/bin/bash
# Module mise à jour de la distribution # Module mise à jour de la distribution
upgrade_dist() upgrade_dist()
{ {
local proxyfile=/etc/apt/apt.conf.d/00proxy local proxyfile=/etc/apt/apt.conf.d/00proxy
prnt I "Configuration du proxy pour APT..." prnt I "Configuration du proxy pour APT..."
if [[ $PROXYSRV ]]; then if [[ $PROXYAPT ]]; then
if [[ ! -d $(basedir $proxyfile) ]]; then if [[ ! -d $(basedir $proxyfile) ]]; then
mkdir -pv /etc/apt/apt.conf.d || ( mkdir -pv /etc/apt/apt.conf.d || (
prnt E "Impossiblle de créer le répertoire d'accueil pour la configuration d'APT." prnt E "Impossiblle de créer le répertoire d'accueil pour la configuration d'APT."
@@ -16,20 +14,20 @@ upgrade_dist()
) )
fi fi
backupdist $proxyfile backupdist $proxyfile
echo "# Generated automatically on $(date $DATEFORMAT) by $0" > $proxyfile echo "# Generated automatically on $(stdtime) by $0" > $proxyfile
echo "Acquire::http::Proxy \"http://${PROXYSRV}:${PROXYPORT}\";" >> $proxyfile echo "Acquire::http::Proxy \"http://${PROXYAPT}:${PROXYAPTPORT}\";" >> $proxyfile
else else
prnt I "Pas de proxy configuré, ne fait rien." prnt I "Pas de proxy configuré, ne fait rien."
fi fi
prnt I "Mise à jour de la liste des paquets..." prnt I "Mise à jour de la liste des paquets..."
apt-get update pkgupdt
prnt I "Application des mises à jour de paquets..." prnt I "Application des mises à jour de paquets..."
apt-get upgrade -y pkgupdg
prnt I "Suppression de paquets indésirables..." prnt I "Suppression de paquets indésirables..."
apt-get remove --purge -y $RMLIST pkgrem $RMLIST
prnt I "Suppression des paquets résiduels..." prnt I "Suppression des paquets résiduels..."
apt autoremove --purge -y pkgautorem
} }
precheck_upgrade_dist() precheck_upgrade_dist()
@@ -40,8 +38,8 @@ precheck_upgrade_dist()
prnt E "Réseau non fonctionnel ! Abandon." prnt E "Réseau non fonctionnel ! Abandon."
exit 1 exit 1
fi fi
if [[ $PROXYSRV ]]; then if [[ $PROXYAPT ]]; then
[[ ! $PROXYPORT ]] && ( [[ ! $PROXYAPTPORT ]] && (
prnt E "Un serveur proxy a été spécifié mais pas son port d'usage." prnt E "Un serveur proxy a été spécifié mais pas son port d'usage."
exit 1 exit 1
) )