Automatiser l’installation de Debian avec un fichier preseed.cfg
Table des matières
Introduction#
L’installation manuelle de Debian sur plusieurs machines peut vite devenir répétitive et chronophage. Heureusement, il existe une méthode efficace pour automatiser ce processus : l’utilisation d’un fichier de configuration preseed. Ce fichier permet de répondre à l’avance aux questions posées par l’installateur Debian, simplifiant ainsi le déploiement sur plusieurs machines. Dans ce billet, nous vous guidons à travers la création d’une image ISO Debian intégrant un fichier preseed.cfg pour automatiser l’installation.
Retrouvez le projet complet sur GitHub : debian-preseed-iso-builder.
Qu’est-ce que le fichier preseed.cfg ?#
Le fichier preseed.cfg est un fichier de configuration qui contient toutes les réponses aux questions habituellement posées par l’installateur Debian : choix du fuseau horaire, configuration réseau, partitionnement du disque, etc. Il vous permet d’automatiser complètement ou partiellement l’installation de Debian, facilitant ainsi le déploiement sur plusieurs machines.
Exemple de fichier preseed.cfg#
Voici un exemple de fichier preseed.cfg que vous pouvez utiliser comme point de départ pour personnaliser votre installation :
Exemple de fichier preseed.cfg.
N’hésitez pas à lire la documentation officiel pour mieux comprendre quels sont les options possibles.
Voici les quelques spécificités de cette configuration :
- Création automatique des partitions suivantes avec LVM :
/dev/sda1 500M ext3 /boot
/dev/sda2 max lvm -
vg_00 max - -
lv_swap 2G swap -
lv_root 5G xfs /
lv_home 1G xfs /home
lv_var 3G xfs /var
lv_var_log 1G xfs /var/log
lv_tmp 1G xfs /tmp
- Définition des mirroires sources pour les mises à jour, correction de sécurité et des mises à jour du système.
- Installation des paquets suivants :
openssh-server,build-essential,python3,wget,curl,vim,htop
Configurer le mot de passe root#
Avant de créer l’ISO personnalisée, il est important de configurer le mot de passe root. Pour ce faire, générez un mot de passe hashé avec les commandes suivantes :
sudo apt install -y whois
mkpasswd -m sha256crypt
Insérez ensuite le mot de passe hashé dans le fichier preseed.cfg à l’emplacement approprié.
Créer une image ISO Debian avec preseed.cfg#
Pour intégrer votre fichier preseed.cfg dans une image ISO Debian, vous pouvez suivre les instructions du wiki Debian. Toutefois, pour simplifier le processus, nous avons préparé un script Makefile qui automatise les commandes nécessaires :
ISOBASEFILE=debian-12.0.0-amd64-netinst.iso
DESTINATION=isofiles
PRESEEDFILE=preseed.cfg
ISOLINUXDIR=isolinux
TARGETISODIR=output
TARGETISO=$(TARGETISODIR)/preseed-$(ISOBASEFILE)
all: clean extract addcustomisolinux addpreseed generatemd5sum createiso
extract:
7z x -o$(DESTINATION) $(ISOBASEFILE)
addpreseed:
chmod +w -R $(DESTINATION)/install.amd/
gunzip $(DESTINATION)/install.amd/initrd.gz
echo $(PRESEEDFILE) | cpio -H newc -o -A -F $(DESTINATION)/install.amd/initrd
gzip $(DESTINATION)/install.amd/initrd
chmod -w -R $(DESTINATION)/install.amd/
addcustomisolinux:
cp -R $(ISOLINUXDIR)/* $(DESTINATION)/isolinux/
generatemd5sum:
chmod +w $(DESTINATION)/md5sum.txt
cd $(DESTINATION) && find -follow -type f ! -name md5sum.txt -print0 | xargs -0 md5sum > md5sum.txt
chmod -w $(DESTINATION)/md5sum.txt
createiso:
mkdir -p $(TARGETISODIR)
genisoimage -r -J -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -o $(TARGETISO) $(DESTINATION)
sudo rm -rf $(DESTINATION)
clean:
sudo rm -rf $(DESTINATION)
Ce script réalise les étapes suivantes :
- Extraction des données de l’image ISO Debian.
- Ajout du fichier
preseed.cfg. - Mise à jour du fichier
md5sum.txt. - Création d’une nouvelle image ISO.
Générer l’image ISO personnalisée#
Une fois le fichier ISO Debian de base téléchargé et le fichier preseed.cfg configuré, utilisez la commande suivante pour générer une nouvelle image ISO personnalisée :
make ISOBASEFILE=debian-12.0.0-amd64-DVD-1.iso
Configurer les paramètres de langue et de clavier#
Certains paramètres, tels que la langue et le clavier, doivent être configurés avant que l’installateur Debian ne lise le fichier preseed.cfg. Pour ce faire, vous devez les définir directement dans les fichiers de configuration isolinux.
Pour plus d’informations sur IsoLinux, lisez cet article : Types de bootloaders Syslinux.
isolinux/isolinux.cfg: Ce fichier configure le comportement par défaut du chargeur de démarrage IsoLinux et inclut d’autres fichiers commemenu.cfgettxt.cfgpour gérer le processus de démarrage.
path
prompt 0
timeout 0
include menu.cfg
default install
isolinux/txt.cfg: Ce fichier contient les commandes et arguments nécessaires pour charger le noyau avec les paramètres de langue et de clavier avant le démarrage de l’installateur Debian.
label install
menu label ^Install
kernel /install.amd/vmlinuz
append vga=788 initrd=/install.amd/initrd.gz language=en country=GB keymap=fr(latin9) --- quiet
Conclusion#
En suivant ces étapes, vous pouvez désormais automatiser l’installation de Debian et gagner du temps lors du déploiement sur plusieurs machines. Que vous soyez administrateur système ou développeur, cette méthode vous permet de déployer Debian de manière efficace et sans effort manuel. Bonne installation automatisée !
Sources et documentation supplémentaires#
Pour plus d’informations sur l’automatisation de l’installation de Debian, consultez les ressources suivantes :