apt commands no longer hardcoded, moved includes, main program improvement, some cleanup
This commit is contained in:
20
conf/includes/debian.conf.sh
Normal file
20
conf/includes/debian.conf.sh
Normal 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%"
|
||||
@@ -2,11 +2,13 @@
|
||||
export MAINDOM="legos.obs-mip.fr"
|
||||
|
||||
# Proxy LEGOS
|
||||
export PROXYAPT="acng.legos.obs-mip.fr"
|
||||
export PROXYAPTPORT="3142"
|
||||
export PROXYSRV="proxy.legos.obs-mip.fr"
|
||||
export PROXYPORT="3128"
|
||||
export PROXYSRVPORT="3128"
|
||||
|
||||
# Paquets à enlever après installation
|
||||
export RMLIST="apparmor chafa laptop-detect resolvconf"
|
||||
export RMLIST="apparmor laptop-detect resolvconf"
|
||||
export APTBLACKLIST="apparmor chafa resolvconf"
|
||||
|
||||
# Langues supportés
|
||||
@@ -1,7 +1,14 @@
|
||||
. conf/includes/legos.conf.sh
|
||||
# Fichier de configuration principal
|
||||
|
||||
# Utilisateur de la machine
|
||||
export MAINUSER="levasseu"
|
||||
# Importe les paramètres spécifiques LEGOS
|
||||
. $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
|
||||
export MAINIF="eth0"
|
||||
@@ -9,7 +16,16 @@ export MAINIF="eth0"
|
||||
# Booléen indiquant une ou plusieurs futures VM
|
||||
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)
|
||||
# Laisser vide pour RAID0
|
||||
export CALCLEVEL=""
|
||||
@@ -22,5 +38,6 @@ export CALCDRV="/dev/disk/by-id/xxxxx"
|
||||
export FORCEBLANK="no"
|
||||
|
||||
# ------------------------------------------------------------------------------
|
||||
|
||||
export MODULE_LIST="upgrade_dist conf_disks conf_locale conf_ntp"
|
||||
# -------------- Section modules d'init ---------------
|
||||
export MODULE_LIST="upgrade_dist conf_disks conf_locale conf_ntp conf_ssh \
|
||||
install_desktop install_pkg"
|
||||
|
||||
12
init.sh
12
init.sh
@@ -1,4 +1,6 @@
|
||||
#!/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
|
||||
MYPATH=$(dirname $0)
|
||||
@@ -10,7 +12,15 @@ done
|
||||
|
||||
# Important global variables
|
||||
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
|
||||
#authnz()
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# Some display functions and defines color codes
|
||||
# (standard 16 colors display)
|
||||
|
||||
# Standard 16 colors display declaration
|
||||
DEFAULTFG="\e[0;39m"
|
||||
DEFAULTBG="\e[0;49m"
|
||||
DEFAULTCOL=${DEFAULTBG}${DEFAULTFG}
|
||||
|
||||
43
lib/pkgman.sh
Normal file
43
lib/pkgman.sh
Normal 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
|
||||
@@ -11,7 +11,7 @@ conf_zfs()
|
||||
mkdir -pv /calcul/$HOSTNAME
|
||||
|
||||
# Installation de ZFS
|
||||
apt -y install zfsutils-linux
|
||||
pkginst zfsutils-linux
|
||||
|
||||
# Chargement du module et vérification
|
||||
modprobe zfs || (
|
||||
@@ -64,7 +64,7 @@ conf_ext4()
|
||||
conf_xfs()
|
||||
{
|
||||
prnt I "Installation des outils XFS..."
|
||||
apt install -y xfsprogs
|
||||
pkginst xfsprogs
|
||||
mkpart
|
||||
# A finir
|
||||
}
|
||||
@@ -81,7 +81,7 @@ conf_disk()
|
||||
fi
|
||||
|
||||
prnt I "Installation des outils de partitionnement..."
|
||||
apt install -y parted
|
||||
pkginst parted
|
||||
|
||||
conf_$CALCTYPE && (
|
||||
prnt I "Attribution des droits sur le disque de calcul."
|
||||
|
||||
@@ -1,14 +1,12 @@
|
||||
#!/bin/bash
|
||||
# Module mise à jour de la distribution
|
||||
|
||||
|
||||
|
||||
upgrade_dist()
|
||||
{
|
||||
local proxyfile=/etc/apt/apt.conf.d/00proxy
|
||||
|
||||
prnt I "Configuration du proxy pour APT..."
|
||||
if [[ $PROXYSRV ]]; then
|
||||
if [[ $PROXYAPT ]]; 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."
|
||||
@@ -16,20 +14,20 @@ upgrade_dist()
|
||||
)
|
||||
fi
|
||||
backupdist $proxyfile
|
||||
echo "# Generated automatically on $(date $DATEFORMAT) by $0" > $proxyfile
|
||||
echo "Acquire::http::Proxy \"http://${PROXYSRV}:${PROXYPORT}\";" >> $proxyfile
|
||||
echo "# Generated automatically on $(stdtime) by $0" > $proxyfile
|
||||
echo "Acquire::http::Proxy \"http://${PROXYAPT}:${PROXYAPTPORT}\";" >> $proxyfile
|
||||
else
|
||||
prnt I "Pas de proxy configuré, ne fait rien."
|
||||
fi
|
||||
|
||||
prnt I "Mise à jour de la liste des paquets..."
|
||||
apt-get update
|
||||
pkgupdt
|
||||
prnt I "Application des mises à jour de paquets..."
|
||||
apt-get upgrade -y
|
||||
pkgupdg
|
||||
prnt I "Suppression de paquets indésirables..."
|
||||
apt-get remove --purge -y $RMLIST
|
||||
pkgrem $RMLIST
|
||||
prnt I "Suppression des paquets résiduels..."
|
||||
apt autoremove --purge -y
|
||||
pkgautorem
|
||||
}
|
||||
|
||||
precheck_upgrade_dist()
|
||||
@@ -40,8 +38,8 @@ precheck_upgrade_dist()
|
||||
prnt E "Réseau non fonctionnel ! Abandon."
|
||||
exit 1
|
||||
fi
|
||||
if [[ $PROXYSRV ]]; then
|
||||
[[ ! $PROXYPORT ]] && (
|
||||
if [[ $PROXYAPT ]]; then
|
||||
[[ ! $PROXYAPTPORT ]] && (
|
||||
prnt E "Un serveur proxy a été spécifié mais pas son port d'usage."
|
||||
exit 1
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user